C++ 基类和派生类的析构函数
生活随笔
收集整理的這篇文章主要介紹了
C++ 基类和派生类的析构函数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
和構造函數類似,析構函數也不能被繼承。與構造函數不同的是,在派生類的析構函數中不用顯式地調用基類的析構函數,因為每個類只有一個析構函數,編譯器知道如何選擇,無需程序員干涉。
另外析構函數的執行順序和構造函數的執行順序也剛好相反:
創建派生類對象時,構造函數的執行順序和繼承順序相同,即先執行基類構造函數,再執行派生類構造函數。
而銷毀派生類對象時,析構函數的執行順序和繼承順序相反,即先執行派生類析構函數,再執行基類析構函數。
請看下面的例子:
#include <iostream> using namespace std;class A{ public:A(){cout<<"A constructor"<<endl;}~A(){cout<<"A destructor"<<endl;} };class B: public A{ public:B(){cout<<"B constructor"<<endl;}~B(){cout<<"B destructor"<<endl;} };class C: public B{ public:C(){cout<<"C constructor"<<endl;}~C(){cout<<"C destructor"<<endl;} };int main(){C test;return 0; }運行結果:
A constructor B constructor C constructor C destructor B destructor A destructor總結
以上是生活随笔為你收集整理的C++ 基类和派生类的析构函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++ throw
- 下一篇: Spring Boot 分布式会话