728x90
1. 다형성
- 업 캐스팅 : 부모 포인터 타입으로, 부모 클래스로부터 파생되는 자식 클래스 객체들의 주소를 가리 킬 수 있다.
- 모든 객체를 부모 클래스 타입으로 인식하기 때문에, 실제 객체가 무엇인지 알 수 없다.( 어떤 자식인지 구분 불가 )
-> 아래 두 개의 객체를 같은 것으로 인식한다.
- 다운 캐스팅 : 부모 클래스에서 선언된 지 않고 자식 쪽에서만 추가된 함수를 업 캐스팅된 자식 클래스에서 강제로 자식 포인터로 형 변환(캐스팅)하여 자식 클래스의 멤버에 접근하는 법
- 다이나믹 캐스팅
- 가상 함수 virtual 키워드를 통해서, 각 클래스는 자신만의 고유한 가상함수 테이블을 가지게 된다.
2. 가상 함수 (virtual)
- 상속 시 가상 함수가 하나 이상 있어야한다. 일반적으로 소멸자를 가상함수로 만든다.
- 가상 함수가 하나 이상 있을 경우 클래스 내에 눈에 보이지 않은 멤버가 추가된다. --> 가상함수 테이블 포인터 (8byte)
- 가상함수 테이블 포인터(_vfptr) : 해당 클래스의 함수들이 등록되어있음
3. 추상화
- 실제 객체를 생성할 목적의 클래스가 아닌, 상속을 통해서 구현해야 할 내용을 전달하는 목적으로 만들어진 클래스
- 한 개 이상의 순수 가상 함수를 포함하면 추상 클래스가 된다.
'C++' 카테고리의 다른 글
Static 변수, 함수 (0) | 2021.07.29 |
---|---|
Singleton 패턴 (0) | 2021.07.29 |
class의 상속과 다형성 _ 210616 (0) | 2021.06.16 |
Iterator 직접 만들어 보기 _ 18일차_210607 (0) | 2021.06.07 |
Iterator 개념, 직접 만들어보기 _ 17일차 _210604 (0) | 2021.06.07 |