簡(jiǎn)單介紹C++編程中派生類的析構(gòu)函數(shù)
和構(gòu)造函數(shù)類似,析構(gòu)函數(shù)也是不能被繼承的。
創(chuàng)建派生類對(duì)象時(shí),構(gòu)造函數(shù)的調(diào)用順序和繼承順序相同,先執(zhí)行基類構(gòu)造函數(shù),然后再執(zhí)行派生類的構(gòu)造函數(shù)。但是對(duì)于析構(gòu)函數(shù),調(diào)用順序恰好相反,即先執(zhí)行派生類的析構(gòu)函數(shù),然后再執(zhí)行基類的析構(gòu)函數(shù)。
請(qǐng)看下面的例子:
#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; }
運(yùn)行結(jié)果:
A constructor B constructor C constructor C destructor B destructor A destructor
從運(yùn)行結(jié)果可以很明顯地看出來,構(gòu)造函數(shù)和析構(gòu)函數(shù)的執(zhí)行順序是相反的。
需要注意的是,一個(gè)類只能有一個(gè)析構(gòu)函數(shù),調(diào)用時(shí)不會(huì)出現(xiàn)二義性,所以析構(gòu)函數(shù)不需要顯式地調(diào)用。
- 淺談C++基類的析構(gòu)函數(shù)為虛函數(shù)
- 簡(jiǎn)要解讀C++的動(dòng)態(tài)和靜態(tài)關(guān)聯(lián)以及虛析構(gòu)函數(shù)
- 詳解C++編程中的析構(gòu)函數(shù)
- C++類成員構(gòu)造函數(shù)和析構(gòu)函數(shù)順序示例詳細(xì)講解
- c++基礎(chǔ)語法:構(gòu)造函數(shù)與析構(gòu)函數(shù)
- 深入解析C++中的構(gòu)造函數(shù)和析構(gòu)函數(shù)
- C++虛析構(gòu)函數(shù)的使用分析
- 解析C++中虛析構(gòu)函數(shù)的作用
- 深入C++中構(gòu)造函數(shù)、拷貝構(gòu)造函數(shù)、賦值操作符、析構(gòu)函數(shù)的調(diào)用過程總結(jié)
- 從匯編看c++的默認(rèn)析構(gòu)函數(shù)的使用詳解
- C++函數(shù)返回值為對(duì)象時(shí),構(gòu)造析構(gòu)函數(shù)的執(zhí)行細(xì)節(jié)
- 全面解析C++中的析構(gòu)函數(shù)
相關(guān)文章
c++如何控制對(duì)象的創(chuàng)建方式(禁止創(chuàng)建棧對(duì)象or堆對(duì)象)和創(chuàng)建的數(shù)量
這篇文章主要介紹了c++如何控制對(duì)象的創(chuàng)建方式和創(chuàng)建的數(shù)量,幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下2020-08-08Qt利用QJson實(shí)現(xiàn)解析數(shù)組的示例詳解
這篇文章主要為大家詳細(xì)介紹了Qt如何利用QJson實(shí)現(xiàn)解析數(shù)組功能,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Qt有一定幫助,需要的小伙伴可以了解一下2022-10-10C++實(shí)現(xiàn)LeetCode(108.將有序數(shù)組轉(zhuǎn)為二叉搜索樹)
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(108.將有序數(shù)組轉(zhuǎn)為二叉搜索樹),本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07c語言實(shí)現(xiàn)足球比賽積分統(tǒng)計(jì)系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了c語言實(shí)現(xiàn)足球比賽積分統(tǒng)計(jì)系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05C語言中數(shù)據(jù)如何存儲(chǔ)進(jìn)內(nèi)存揭秘
使用編程語言進(jìn)行編程時(shí),需要用到各種變量來存儲(chǔ)各種信息。變量保留的是它所存儲(chǔ)的值的內(nèi)存位置。這意味著,當(dāng)您創(chuàng)建一個(gè)變量時(shí),就會(huì)在內(nèi)存中保留一些空間。您可能需要存儲(chǔ)各種數(shù)據(jù)類型的信息,操作系統(tǒng)會(huì)根據(jù)變量的數(shù)據(jù)類型,來分配內(nèi)存和決定在保留內(nèi)存中存儲(chǔ)什么2022-08-08如何判斷一個(gè)數(shù)是否為2的冪次方?若是,并判斷出來是多少次方?
本篇文章是對(duì)如何判斷一個(gè)數(shù)是否為2的冪次方?若是,并判斷出來是多少次方的實(shí)現(xiàn)方法,進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05基于OpenCv的運(yùn)動(dòng)物體檢測(cè)算法
這篇文章主要為大家詳細(xì)介紹了基于OpenCv的運(yùn)動(dòng)物體檢測(cè)算法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01