1. 상속의 3가지 관계
1) is-a
2) has-a
3) is implemented of
2. 가상 소멸자
- 소멸자는 자식 클래스의 소멸자가 먼저 불리고나서 부모 클래스의 소멸자가 불려진다.
- 소멸자도 자식 클래스에서 오버라이딩된 함수라고 볼 수 있기 때문에 만약 부모 포인터로 자식 객체를 삭제하면
부모 클래스의 소멸자가 호출된다.
따라서 소멸자를 가상함수로 선언하지 않으면 이 경우 자식 클래스의 소멸자는 결코 호출되지 않는다.
- 가상함수 virtual이 사용되었다면 이것은 자식 클래스에서 재정의 될 수 있음을 명시하기 때문에
포인터의 종류에 상관없이 항상 자식 클래스의 메서드가 호출된다.
> 즉 자식클래스의 소멸자가 호출되고 부모클래스의 소멸자가 호출된다.
'Language > C++' 카테고리의 다른 글
[C++] 캐스트 연산자 (0) | 2020.12.15 |
---|---|
[C++] RTTI (RunTime Type Information) (0) | 2020.12.15 |
[C++] 컴파일 과정 (0) | 2020.12.15 |
[C++] 컴파일 / 런타임 / 논리 오류 (0) | 2020.12.15 |
[C++] 전처리기 (0) | 2020.12.13 |