C++默認構造函數

默認構造函數要麼沒有參數,要麼所有參數都有默認值,如果沒有定義任何構造函數,編譯器將自動生成一個不帶任何參數的構造函數,讓程序猿能創建對象.


自動生成的默認構造函數的另一項功能是:調用基類的默認構造函數以及調用本身是對象的成員所屬類的默認構造函數.如果派生類構造函數的成員初始化列表沒有顯示的調用基類構造函數,則編譯器將使用基類的默認構造函數來構造派生類對象的基類部分.在這種情況下,如果基類沒有構造函數,將導致編譯階段錯誤.


如果定義了某種構造函數,編譯器將不會定義默認構造函數,在這種情況下,如果需要默認構造函數,則必須自己提供.


構造函數的動機之一是確保對象總能被正確的初始化.如果類包含指針類型的成員函數,則必須初始化這些成員,因此,最好提供一個顯式默認構造函數,將所有的類數據成員都初始化爲一個合適的值.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章