C++. 업캐스팅과 다운캐스팅 알아보기

최대 1 분 소요

🌟 다형성이란?

상속 관계에 있는 두 클래스 간에 형변환이 가능한 것을 말한다. 이때 자식에서 부모로 형변환 하는 걸 업캐스팅, 부모에서 자식으로 형변환 하는 걸 다운캐스팅이라고 한다.

🌟 사용법

#include <iostream>

using namespace std;

class CParent
{
public:
    void Output()
    {
        cout << "부모입니다.";
    }
};

class CChild : public CParent
{
public:
    void Output()
    {
        cout << "자식입니다.";
    }
};

int main()
{
    CChild child;
    CChild* pChild = &child;

    CParent* pParent = pChild; //업캐스팅
    
    pParent->Output();
    
    pChild = (CChild*)pParent; //다운캐스팅

    pChild->Output();
}

업캐스팅한 후 출력한 걸 보면 부모라고 출력한 걸 알 수 있고, 다운캐스팅한 후 출력하면 자식이라고 출력한 걸 알 수 있다.

댓글남기기