프로그래밍/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)을 가집니다.
부모 클래스의 모든 멤버를 상속 받은 자식 객체는 부모 클래스로도 사용될 수 있습니다.
이것을 "업캐스팅"이라 부릅니다.
업캐스팅을 하면 자식 객체는 부모로 사용되므로 오버라이딩되었던 멤버들 또한 무시되고 부모 클래스의 멤버에 접근합니다.