업캐스팅과 다운캐스팅
STUDY/C++2022. 6. 14. 17:43
먼저 캐스팅이란 타입을 변환하는 것을 말하며 '형변환'이라고도 합니다.
업캐스팅과 다운캐스팅은 정의만 정리합니다.
업캐스팅
업 캐스팅이란 하위 클래스의 객체가 상위 클래스 타입으로 형변환으로 변환되는 것을 말합니다.
- 업캐스팅시 원래 자식 클래스의 메소드는 접근이 불가능하다.
- 명시적 형변환을 하지 않아도 형변환이 가능하다.
다형성을 통하여 재사용성을 높일 수 있습니다.
업캐스팅을 통하여 사용할 수 있는 예로는
- 동일한 기반(부모) 클래스를 처리하는 함수를 사용하여 같은 파생(자식) 클래스를 한번에 사용할 수 있습니다.
- 동일한 기반(부모)를 가지는 클래스들을 보관하는 컨테이너를 통한 사용이 가능합니다.
다운캐스팅
다운캐스팅이란 업캐스팅이 되면 기본 클래스에 정의된 멤버만 호출할 수 있기 때문에 동일한 타입의 포인터가 동일한 타입을 가리키게 하는 것을 말합니다.
- 다운캐스팅은 반드시 명시적 형변환이 필요하다.
- 서로 동일한 타입이여야한다.
이러한 다운캐스팅의 대표적인 예는 dynamic_cast로 상속 관계에 있는 클래스간의 형변환이 있으며 RTTI를 통하여 다양한 방식의 타입 캐스팅을 지원합니다.(이는 나중에...)
'STUDY > C++' 카테고리의 다른 글
| RTTI(Run Time Type Infomation) (0) | 2022.06.18 |
|---|---|
| 오버로딩, 오버라이딩 (0) | 2022.06.05 |
| OOP-객체 지향 프로그래밍 (0) | 2022.05.30 |
댓글()







