日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

2020-12-18(何种情况下编译器会提供默认构造函数)

發布時間:2025/3/21 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2020-12-18(何种情况下编译器会提供默认构造函数) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

當問到大家什么時候會提供默認構造函數時,有的人會不會一下子就想到當我們沒有定義構造函數的時候,它就會提供默認的構造函數,但我們想想一個問題,假如沒有意義的情況下提供了默認構造函數,那是不是把編譯器搞得像一個傻子一樣?其實呀,編譯器不傻。
所以總結如下:

下面兩種情況下,編譯器才會提供默認的構造函數:
a.本類.本類中定義的成員對象或者父類中有虛函數存在
解釋:由于需要初始化虛表,且這個工作理應在構造函數隱式完成,因此在沒有定義構造函數的情況下,編譯器會添加默認的構造函數用于隱式完成虛表的創建工作

b.父類或本類中定義的成員對象帶有構造函數
解釋:在對象被定義時,由于對象本身為派生類,因此構造順序實現構造父類再構造自身。當父類中帶有構造函數時,將會調用父類的構造函數,而這個調用過程需要在構造函數中完成,因此編譯器添加了默認的構造函數來完成這個調用過程。成員對象帶有構造函數的情況與此相同

在沒有定義構造函數的情況下,當類中沒有虛函數存在時,父類和成員對象也沒有定義構造函數時,提供默認構造函數已沒有任何意義,只會降低程序的執行效率。

總結

以上是生活随笔為你收集整理的2020-12-18(何种情况下编译器会提供默认构造函数)的全部內容,希望文章能夠幫你解決所遇到的問題。

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