1、 構造函數和析構函數的定義
每個類必須有默認的構造函數,沒有構造函數就不能創建對象。若沒有提供任何函數,那么C++自動提供一個默認的構造函數,該默認構造函數是一個沒有參數的構造函數,它僅僅復制創建對象而不做任何賦值操作。只要類中提供了任意一個構造函數,那么C++就不再自動提供默認構造函數。析構函數也是特殊的類成員函數,它沒有返回類型,沒有參數,不能隨便調用,也沒有重載,只有在類對象的生命周期結束的時候,由系統自動調用。二者的最大不同在于調用期不同,構造函數可以有參數,可以重載。
2、 構造函數和析構函數的應用注意事項
①如果構造函數沒有參數,聲明對象時不要帶有括號。
②構造函數沒有返回值,所以不能把它聲明為void函數,盡管它實際上默認為void類型,也不能聲明為void類型。
③對一個類而言,可以定義多個重載的構造函數,但是它們必須有完全不同的參數表。
④析構函數可以為virtual類型,而構造函數不能為virtual類型,是因為虛函數采用一種虛調用的辦法,虛調用是一種在只有部分信息的情況下的工作機制,特別允許一個只知道接口而不知其準確對象類型的函數訪問,但是要創建一個對象,就要知道其準確的類型,因此構造函數不可為虛。
⑤析構函數可以使內聯函數
3、 實例代碼
代碼可參考隨筆:
C++ primer plus第十一章 使用類的程序
想要獲得更多內容,可點擊
:《Visual C++代碼參考與技巧大全》學習筆記——索引隨筆