默認構造函數要麼沒有參數,要麼所有參數都有默認值,如果沒有定義任何構造函數,編譯器將自動生成一個不帶任何參數的構造函數,讓程序猿能創建對象.
自動生成的默認構造函數的另一項功能是:調用基類的默認構造函數以及調用本身是對象的成員所屬類的默認構造函數.如果派生類構造函數的成員初始化列表沒有顯示的調用基類構造函數,則編譯器將使用基類的默認構造函數來構造派生類對象的基類部分.在這種情況下,如果基類沒有構造函數,將導致編譯階段錯誤.
如果定義了某種構造函數,編譯器將不會定義默認構造函數,在這種情況下,如果需要默認構造函數,則必須自己提供.