1. 가상 소멸자 ( Virtual Destructor )


-위와 같이 Second Class를 생성하게 되면 First Class와 Second Class의 Constructor가 나란히 호출되고 나중에 소멸될 때 First Class(Base Class)의 할당을   해제하면 Second Class의 Destructor가 호출되지 않는 문제가 발생함

-이를 위해 First Class(Base Class)의 Destructor에 Virtual선언을 해주어, 이를 상속하는 Derived Class의 Destructor도 모두 Virtual Destructor로 선언이됨

 그리고 Virtual Destructor가 호출되면(Base Class의) 상속의 계층구조상 맨 아래에 존재하는 Derived Class의 Destructor가 대신 호출되고 그 다음 Base   Class의 Destructor가 순차적으로 호출됨


*상속관계에 있는 Class의 Constructor와 Destructor 호출 순서

First Class의 Constructor 호출 -> Second Class의 Constructor호출 -> Second Class의 Destructor호출 -> First Class의 Destructor호출


2. 참조자의 참조 가능성

* C++에서, AAA형 참조자는 AAA형 객체 또는 AAA를 직접 혹은 간접적으로 상속하는 모든 객체를 참조할 수 있음



'Programming Language > C++' 카테고리의 다른 글

09-2 다중상속  (0) 2019.01.31
09-1 멤버함수와 가상함수의 동작원리  (0) 2019.01.31
08-2 가상함수  (0) 2019.01.29
08-1 객체 포인터의 참조관계  (0) 2019.01.15
07-4 상속을 위한 조건  (0) 2018.01.22

+ Recent posts