日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

c++ map 析构函数_C++|类继承关系中的虚函数、虚析构函数、虚基类

發布時間:2023/12/15 c/c++ 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c++ map 析构函数_C++|类继承关系中的虚函数、虚析构函数、虚基类 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在繼承關系中,虛函數、虛析構函數、虛基類中使用的關鍵字virtual都是在告訴編譯器,此處要進行特殊處理:

虛函數:函數重寫時的要求編譯器動態綁定來實現多多態 ;

虛析構函數:當基類指針指向在堆內實現的派生類的動態對象時,virtaul聲明的基類析構函數是告訴編譯器,還要調用派生類的析構函數。

虛基類:當派生類有多重繼承和多繼承時,在繼承鏈上有兩個子類繼承自同一基類時,此兩個子類作為基類再次派生出一個類,若只想保存這兩個子類的基類的一個實例,需用virtual來聲明繼承關系,編譯器對虛基類只實現一個實例,從而避免二義性。

1 虛函數

面向對象的在繼承時要實現動態多態,需要用關鍵字virtual告訴編譯器,由編譯器在編譯時生成一個虛函數表,程序運行時實現每個對象通過一個自動添加的函數指針來動態綁定一個函數去實現多態:

#includeclass CShape{public:virtual double Area(){cout<Area()<Area()<

2 虛析構函數

在實現多態時,如果是由基類指針指向在堆上動態創建派生對象時,如果delete此虛類指針,則基類的析構函數被調用,并不會調用派生類的析構函數,如果派生類中有在堆上動態創建的數據時,則會出現內存泄露。C++編譯器的做法時,如果基類的析構函數前面有用virtual修飾,編譯器會自動去調用派生類的析構函數(實現動態綁定,如果其它成員函數的動態綁定一樣),做內存釋放的工作。

如果某個類不包含虛函數,那一般是表示它將不作為一個基類來使用。當一個類不準備作為基類使用時,使析構函數為虛一般是個壞主意。因為它會為類增加一個虛函數表,使得對象的體積翻倍,還有可能降低其可移植性。實際上,很多人這樣總結:當且僅當類里包含至少一個虛函數的時候才去聲明虛析構函數。

虛析構函數是為了解決這樣的一個問題:基類的指針指向派生類對象,并動態調用派生類的析構函數。

#include using namespace std;class CSon{public:~CSon(){cout<

3 虛基類

當在多條繼承路徑上有一個公共的基類,在這些路徑中的某幾條匯合處,這個公共的基類就會產生多個實例(或多個副本),若只想保存這個基類的一個實例,可以將這個公共基類說明為虛基類。

如果將這種多繼承和多重繼承畫成圖形關系,會有菱形的圖案出現,稱為菱形繼承:

如圖,子類D最后會接受分別來自B和C的同一個或多個相同拷貝,從而產生了多個拷貝,即不止一次的通過多個路徑繼承類在內存中創建了基類成員的多份拷貝。而這些是B和C從父類繼承而來,所以D類該繼承B還是C傳下來的,還是都接受呢?這樣就產生歧義(二義性),虛基類的基本原則是在內存中只有基類成員的一份拷貝。這樣,通過把基類繼承聲明為虛擬的(virtual限定符),就只能繼承基類的一份拷貝,從而消除歧義。

#includeclass base { protected: int a; public: base(){ cout <

輸出結果為:0123,如果省略掉其中的關鍵字virtual,則輸出01023,可以看出,構造函數有重復調用。

-End-

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的c++ map 析构函数_C++|类继承关系中的虚函数、虚析构函数、虚基类的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 91视频com| 91美女片黄在线观看游戏 | 日韩xx视频 | 亚洲制服丝袜在线播放 | 成人激情在线视频 | 国产精品久久久久久久天堂 | 国产综合精品久久久久成人影 | 国产日产欧美一区二区 | 久久这里只有精品99 | 国产良妇出轨视频在线观看 | 91视频免费观看 | 免费黄色激情视频 | 久久精品免费电影 | 热re99久久精品国产99热 | 88xx成人永久免费观看 | 中文字幕在线观看视频一区二区 | 久久久久亚洲av无码网站 | 国产精品一区二区三区四 | 国产精品色视频 | 国产精品尤物视频 | 天堂av手机版 | 中文字幕人妻一区二区 | 在线不卡免费av | 九九热精品免费视频 | 亚洲热在线视频 | 人妻熟女一区二区aⅴ水野 91在线观看视频 | 欧美国产日韩在线观看成人 | 四虎精品一区二区 | 天天天干 | 亚洲一区动漫 | 国产成人8x视频一区二区 | 麻豆影视在线免费观看 | 日本高清视频一区二区三区 | av福利站 | 九九免费在线视频 | 久久精品99国产 | 高清日韩欧美 | 国产在线一二三区 | 成人永久免费视频 | 久久久久久免费毛片精品 | 激情开心站| 欧美自拍第一页 | 国产成人精品亚洲男人的天堂 | 欧美激情一区二区三区免费观看 | 日本午夜免费福利视频 | 欧洲精品久久 | 肥臀av | 欧美aⅴ在线 | 国产精品热久久 | 精品国产系列 | 综合久 | 在线免费看av的网站 | 日本欧美日韩 | 精品香蕉99久久久久网站 | 国产精品久久久久久久一区二区 | 精品国产一区二区三区无码 | 精品美女在线 | 亚洲精品乱码久久久久久久 | 欧美日韩五月天 | 美日韩一二三区 | xxxx96| 日本午夜一区二区 | 国产精品美女高潮无套 | 久久久噜噜噜久久久 | 成人h动漫在线 | 欧美无吗| 国产99久久久 | 国产精品精品久久久 | 国产一区二区视频在线免费观看 | 亚洲欧洲国产综合 | 长篇乱肉合集乱500小说日本 | 黄瓜视频在线免费看 | 特黄大片又粗又大又暴 | 亚洲午夜一区二区三区 | 欧美在线激情视频 | 午夜精品免费视频 | 99福利影院 | 九一国产在线 | 内射无码专区久久亚洲 | 毛茸茸毛片| 麻豆www.| 国产视频一区二区在线观看 | 精品少妇人妻一区二区黑料社区 | 一区二区三区免费高清视频 | 欧美肥妇bwbwbwbxx | 91精彩刺激对白 | 亚洲精品视频免费观看 | 久久99草 | 狠狠人妻久久久久久综合蜜桃 | 麻豆乱淫一区二区三区 | 日韩网红少妇无码视频香港 | 5a毛片 | 欧美一级淫片免费视频魅影视频 | 一卡二卡三卡四卡五卡 | 欧美xxxbbb | 中文字幕高清视频 | 精品国产乱子伦 | 无码久久精品国产亚洲av影片 | 欧美精品一级 |