国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > C++ > 正文

對(duì)C++默認(rèn)構(gòu)造函數(shù)的一點(diǎn)重要說明

2020-01-26 14:20:41
字體:
供稿:網(wǎng)友

大多數(shù)C++書籍都說在我們沒有自己定義構(gòu)造函數(shù)的時(shí)候,編譯器會(huì)自動(dòng)生成默認(rèn)構(gòu)造函數(shù)。其實(shí)這句話我一直也是

深信不疑。但是最近看了一些資料讓我有了一點(diǎn)新的認(rèn)識(shí)。

其實(shí)我覺得大多數(shù)C++書籍之所以這樣描述其實(shí)是玩了文字游戲的。如果說編譯器自動(dòng)產(chǎn)生的默認(rèn)構(gòu)造函數(shù)對(duì)于我們

的類沒有任何作用,也就是說在編譯器默認(rèn)生成的這個(gè)構(gòu)造函數(shù)里根本沒有任何實(shí)質(zhì)性的代碼工作,那么這種默認(rèn)構(gòu)

造其實(shí)是可有可無(wú)的,所以不妨說編譯器其實(shí)是為每個(gè)類生成了默認(rèn)構(gòu)造函數(shù)的。

在深度探索C++對(duì)象模型中講了四種關(guān)于編譯器自動(dòng)生成默認(rèn)構(gòu)造函數(shù)的情況,在這四種情況下生成的默認(rèn)構(gòu)

造函數(shù)里面是由實(shí)質(zhì)的隱含代碼操作的:

1、 如果類A成員中含有某個(gè)類B的對(duì)象,恰好類B也顯示定義了構(gòu)造函數(shù),那么在產(chǎn)生類A對(duì)象的時(shí)候編譯器會(huì)產(chǎn)生一個(gè)默認(rèn)構(gòu)造函數(shù),在這個(gè)默認(rèn)構(gòu)造函數(shù)中提供了調(diào)用類A構(gòu)造函數(shù)的代碼。


2、如果類B繼承于類A,且類A顯示定義了構(gòu)造函數(shù),那么在生成類B對(duì)象的過程中編譯器同樣會(huì)產(chǎn)生一個(gè)默認(rèn)構(gòu)造函數(shù),在這個(gè)構(gòu)造函數(shù)中提供調(diào)用基類A構(gòu)造函數(shù)的代碼。


3、如果某個(gè)類含有虛函數(shù),那么編譯器會(huì)自動(dòng)產(chǎn)生一個(gè)默認(rèn)構(gòu)造函數(shù)以提供虛表指針相關(guān)的初始化操作。


4、如果一個(gè)類虛繼承于其他類,那么同樣的編譯器會(huì)為該類產(chǎn)生默認(rèn)的構(gòu)造函數(shù)。


除以上四種情況,編譯器都不產(chǎn)生默認(rèn)構(gòu)造函數(shù),因?yàn)榫退憔幾g器產(chǎn)生了默認(rèn)構(gòu)造函數(shù),然而在該默認(rèn)構(gòu)造函數(shù)中沒有實(shí)質(zhì)的內(nèi)容,那么這個(gè)默認(rèn)構(gòu)造函數(shù)也就是沒存在的意義的,那么我們說編譯器不產(chǎn)生也無(wú)妨吧。

以上就是小編為大家?guī)淼膶?duì)C++默認(rèn)構(gòu)造函數(shù)的一點(diǎn)重要說明全部?jī)?nèi)容了,希望大家多多支持武林網(wǎng)~

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 宁海县| 甘肃省| 汶上县| 广州市| 会同县| 南昌县| 林口县| 双柏县| 马鞍山市| 沙河市| 伊金霍洛旗| 福安市| 抚松县| 石首市| 淮阳县| 惠东县| 秭归县| 阿勒泰市| 鹿泉市| 雷州市| 嘉义县| 武义县| 平凉市| 富锦市| 赣州市| 长寿区| 永靖县| 兴和县| 阜南县| 双桥区| 白朗县| 平利县| 台北县| 伽师县| 商南县| 漳州市| 石门县| 天柱县| 德江县| 行唐县| 桃园市|