C++派生类构造函数调用规则
生活随笔
收集整理的這篇文章主要介紹了
C++派生类构造函数调用规则
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一句話總結:基類必須要定義一個構造函數。
派生類構造函數可以自動調用基類的默認構造函數,但是前提是默認構造函數必須存在。通常情況下,默認構造函數系統會自動生成的,但是如果在基類中,我們自己定義了一個帶參數的構造函數,這個時候,系統是不會為基類自動生成默認構造函數的,這個時候派生類則無法自動調用基類的默認構造函數了,因為基類根本就不存在默認構造函數。遇到這種情況有兩種解決方案:其一,在基類中定義一個默認構造函數(不帶參數的構造函數),例如上一節中的例2;其二,派生類中的每一個構造函數都顯式的調用基類中的帶參構造函數。
通常我們還會遇到這樣一種情況,派生類中并未顯式定義構造函數,這個時候派生類中只有系統自動生成的默認構造函數,如此一來,如果我們不為基類設計一個默認構造函數,則程序就會編譯出錯。這種錯誤很玄妙,如果不小心還真是難以發現。
?
總結
以上是生活随笔為你收集整理的C++派生类构造函数调用规则的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++继承机制下的构造函数
- 下一篇: C++继承机制下的析构函数