본문 바로가기

프로그래밍/C++

C++ 문법 - 업캐스팅

< 업 캐스팅 (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)을 가집니다.

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

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


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

'프로그래밍 > C++' 카테고리의 다른 글

C++ 문법 - 가상함수  (0) 2018.02.19
C++ 문법 - 문자열 string  (0) 2018.02.12
C++ 실습 - 체이닝 해시 알고리즘 구현  (0) 2018.02.12
C++ 실습 - 링크드리스트  (0) 2018.02.12
C++ 실습 - 암호화  (0) 2018.02.12