C++ 업캐스팅 다운캐스팅
Intro
업캐스팅과 다운캐스팅의 이해
업 캐스팅 (Up Casting)
업캐스팅이란 파생 클래스의 객체를 기본 클래스의 포인터로 가리키는 것을 말한다.
업 캐스팅은 파생 클래스의 객체를 기본 클래스의 객체 처럼 다룰 수 있게 한다.
예제
cBase는 Circle 클래스의 포인터이므로 cBase 포인터로는 Circle 클래스 멤버만 접근할 수 있다.
그러므로 getArea() 함수는 Circle 클래스의 멤버가 아니므로 오류가 발생한다.
업 캐스팅시엔 다음과 같이 명시적 타입 변환
이 필요 없다.
Circle* cBase = (Circle*)cDer;
다운 캐스팅 (Down Casting)
기본 클래스 포인터가 가리키는 객체를 파생 클래스의 포인터로 가리키는 것을 다운 캐스팅 이라한다.
자식 형식에서 부모 형식을 사용하는것이며 업캐스팅에서 다시 원래의 형으로 되돌려주는 작업이다.
다운 캐스팅은 업 캐스팅과 달리 명시적 타입 변환
을 지정해야 한다.
cDer = (Pizza*)cBase;
댓글남기기