簡(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ǔ)語(yǔ)法:構(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++?高精度乘法運(yùn)算的實(shí)現(xiàn)
本文主要介紹了C++?高精度乘法運(yùn)算的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01
win10+VS2017+Cuda10.0環(huán)境配置詳解
這篇文章主要介紹了win10+VS2017+Cuda10.0環(huán)境配置詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08
C++右值引用與移動(dòng)構(gòu)造函數(shù)基礎(chǔ)與應(yīng)用詳解
左值和右值都是針對(duì)表達(dá)式,左值是指表達(dá)式結(jié)束后依然存在的持久對(duì)象,右值是指表達(dá)式結(jié)束時(shí)就不再存在的臨時(shí)對(duì)象,下面這篇文章主要給大家介紹了關(guān)于C++11右值引用和移動(dòng)語(yǔ)義的相關(guān)資料,需要的朋友可以參考下2023-02-02
C++中函數(shù)使用的基本知識(shí)學(xué)習(xí)教程
這篇文章主要介紹了C++中函數(shù)使用的基本知識(shí)學(xué)習(xí)教程,涵蓋了函數(shù)的聲明和參數(shù)以及指針等各個(gè)方面的知識(shí),非常全面,需要的朋友可以參考下2016-01-01
Unreal學(xué)習(xí)之簡(jiǎn)單三角形的繪制詳解
之所以寫這個(gè)繪制簡(jiǎn)單三角形的實(shí)例其實(shí)是想知道如何在Unreal中通過代碼繪制自定義Mesh,如果你會(huì)繪制一個(gè)三角形,那么自然就會(huì)繪制復(fù)雜的Mesh了。所以這是很多圖形工作者的第一課,快跟隨小編一起學(xué)習(xí)起來吧2023-02-02
C語(yǔ)言結(jié)課設(shè)計(jì)之計(jì)算器功能
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言結(jié)課設(shè)計(jì)之計(jì)算器功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-02-02
C語(yǔ)言深入詳解四大內(nèi)存函數(shù)的使用
這篇文章主要介紹了C語(yǔ)言的四大內(nèi)存函數(shù),講解了mencpy、memmove、memcmp、memset函數(shù),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2022-07-07
C++實(shí)現(xiàn)LeetCode(49.群組錯(cuò)位詞)
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(49.群組錯(cuò)位詞),本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07

