欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2016年12月22日 10:28:29   投稿:jingxian  
下面小編就為大家?guī)?lái)一篇對(duì)C++默認(rèn)構(gòu)造函數(shù)的一點(diǎn)重要說(shuō)明。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

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

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

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

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

造其實(shí)是可有可無(wú)的,所以不妨說(shuō)編譯器其實(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ì)象的過(guò)程中編譯器同樣會(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ù)中沒(méi)有實(shí)質(zhì)的內(nèi)容,那么這個(gè)默認(rèn)構(gòu)造函數(shù)也就是沒(méi)存在的意義的,那么我們說(shuō)編譯器不產(chǎn)生也無(wú)妨吧。

以上就是小編為大家?guī)?lái)的對(duì)C++默認(rèn)構(gòu)造函數(shù)的一點(diǎn)重要說(shuō)明全部?jī)?nèi)容了,希望大家多多支持腳本之家~

相關(guān)文章

  • C語(yǔ)言判斷回文數(shù)的小例子

    C語(yǔ)言判斷回文數(shù)的小例子

    這篇文章主要介紹了C語(yǔ)言判斷回文數(shù)的小例子,有需要的朋友可以參考一下
    2014-01-01
  • dev?c++的使用和調(diào)試方式

    dev?c++的使用和調(diào)試方式

    這篇文章主要介紹了dev?c++?的使用和調(diào)試方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • C++11線程、互斥量以及條件變量示例詳解

    C++11線程、互斥量以及條件變量示例詳解

    這篇文章主要介紹了C++11線程、互斥量以及條件變量,C++11增加了線程以及線程相關(guān)的類,很方便地支持了并發(fā)編程,使得編寫(xiě)多線程程序的可移植性得到了很大的提高,本文通過(guò)實(shí)例代碼給大家詳細(xì)講解,需要的朋友可以參考下
    2023-03-03
  • C++ OpenCV實(shí)戰(zhàn)之網(wǎng)孔檢測(cè)的實(shí)現(xiàn)

    C++ OpenCV實(shí)戰(zhàn)之網(wǎng)孔檢測(cè)的實(shí)現(xiàn)

    這篇文章主要介紹了如何利用C++和OpenCV實(shí)現(xiàn)網(wǎng)孔檢測(cè),文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)OpenCV有一定幫助,感興趣的小伙伴可以了解一下
    2022-05-05
  • 詳解C語(yǔ)言的void*空指針

    詳解C語(yǔ)言的void*空指針

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言的void*空指針,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-03-03
  • C語(yǔ)言實(shí)現(xiàn)BMP格式圖片轉(zhuǎn)化為灰度

    C語(yǔ)言實(shí)現(xiàn)BMP格式圖片轉(zhuǎn)化為灰度

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)BMP格式圖片轉(zhuǎn)化為灰度,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • C語(yǔ)言的程序環(huán)境與預(yù)處理你真的了解嗎

    C語(yǔ)言的程序環(huán)境與預(yù)處理你真的了解嗎

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言的程序環(huán)境與預(yù)處理,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-02-02
  • C++表達(dá)式new與delete知識(shí)詳解

    C++表達(dá)式new與delete知識(shí)詳解

    這篇文章主要為大家詳細(xì)介紹了C++表達(dá)式new與delete知識(shí)點(diǎn),學(xué)習(xí)如何動(dòng)態(tài)創(chuàng)建對(duì)象,動(dòng)態(tài)創(chuàng)建的對(duì)象與一般對(duì)象的區(qū)別,動(dòng)態(tài)創(chuàng)建的對(duì)象的初始化以及釋放動(dòng)態(tài)分配的內(nèi)存等知識(shí)點(diǎn),感興趣的朋友可以參考一下
    2016-05-05
  • 基于C語(yǔ)言實(shí)現(xiàn)的貪吃蛇游戲完整實(shí)例代碼

    基于C語(yǔ)言實(shí)現(xiàn)的貪吃蛇游戲完整實(shí)例代碼

    這篇文章主要介紹了基于C語(yǔ)言實(shí)現(xiàn)的貪吃蛇游戲完整實(shí)例代碼,對(duì)于學(xué)習(xí)游戲開(kāi)發(fā)的朋友有一定的借鑒價(jià)值,需要的朋友可以參考下
    2014-08-08
  • 淺析C語(yǔ)言中的內(nèi)存布局

    淺析C語(yǔ)言中的內(nèi)存布局

    以下是對(duì)C語(yǔ)言中的內(nèi)存布局進(jìn)行了詳細(xì)的分析介紹。需要的朋友可以過(guò)來(lái)參考下
    2013-08-08

最新評(píng)論