이전 섹션과 마찬가지로 파생 클래스에서 소멸자는 파생 클래스에 의해 흡수될 수 없습니다.
핵심은 모든 사람이 파생 클래스와 기본 클래스의 소멸자 호출 순서를 명확히 해야 한다는 것입니다. 소멸자의 호출 순서는 생성자의 호출 순서와 완전히 반대입니다. 파생 클래스 소멸자 및 기본 클래스 소멸자에서 메시지를 출력할 수 있습니다. 호출 순서를 관찰합니다.
/************************************//Des: C++ 튜토리얼 데모//저자: Huang/ /저작권:www.dotcpp.com//날짜:2017/11/15************************************ * *******/#include<iostream>usingnamespacestd;classClock{private:intH;intM;intS;public:Clock(){cout<<Clock'sConstructorCalled!<<endl;}~Clock(){cout < <Clock'sDestructorCalled!<<endl;}};classAlarmClock:publicClock{private:intAH;intAM;public:AlarmClock(){cout<<AlarmClock'sConstructorCalled!<<endl;}~AlarmClock(){cout<<AlarmClock ' sDestructorCalled!<<endl;}};intmain(){AlarmClockA;return0;}
실행 중인 스크린샷:
보시다시피, 파생 클래스 AlarmClock을 정의하면 기본 클래스가 먼저 생성되고 소멸 순서는 반대가 됩니다.
생성자 호출 순서: 기본 클래스 -> 파생 클래스
소멸자 호출 순서: 파생 클래스 -> 기본 클래스
직접 시도해 보십시오.