프로그래밍/C++

C++ 문법 - 업캐스팅

게으른구름 2018. 2. 19. 00:09

< 업 캐스팅 (Up Casting) >


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
 
using namespace std;
 
class 부모 {
public:
    void test() {
        cout << "부모" << endl;
    }
};
 
class 자식 : public 부모 {
public:
    void test() {  // 오버라이딩
        cout << "자식" << endl;
    }
};
 
int main() {
    부모 p;
    자식 c;
 
    부모 *up = &c; // 업캐스팅
 
    up->test();
    // 부모 출력
}
cs


부모 클래스를 상속 받은 자식 클래스는 다형성(Polymorphism)을 가집니다.

부모 클래스의 모든 멤버를 상속 받은 자식 객체는 부모 클래스로도 사용될 수 있습니다.

이것을 "업캐스팅"이라 부릅니다.


업캐스팅을 하면 자식 객체는 부모로 사용되므로 오버라이딩되었던 멤버들 또한 무시되고 부모 클래스의 멤버에 접근합니다.