업캐스팅과 다운캐스팅

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

댓글()