類與物件3

Cling?發表於2020-10-19

類的6個預設成員函式
建構函式、解構函式、拷貝建構函式、賦值操作符過載、const成員函式、取地址及const取地址操作符過載

1.建構函式
建構函式是一個特殊的成員函式,名字與類名相同,建立類型別物件時由編譯器自動呼叫,保證每個資料成員
都有 一個合適的初始值,並且在物件的生命週期內只呼叫一次。
建構函式是特殊的成員函式,需要注意的是,建構函式的雖然名稱叫構造,但是需要注意的是建構函式的主
要任務並不是開空間建立物件,而是初始化物件。
其特徵如下:
1.函式名與類名相同。
2.無返回值。
3.物件例項化時編譯器自動呼叫對應的建構函式。
4.建構函式可以過載。
5.如果類中沒有顯式定義建構函式,則C++編譯器會自動生成一個無參的預設建構函式,一旦使用者顯式定義編譯器將不再生成。
6.無參的建構函式和全預設的建構函式都稱為預設建構函式,並且預設建構函式只能有一個。注意:無參建構函式、全預設建構函式、沒寫編譯器預設生成的建構函式,都可以認為是預設成員函式。

2.解構函式
與建構函式功能相反,解構函式不是完全物件的銷燬,區域性物件銷燬工作是由編譯器完成的。而物件在銷燬時會自動呼叫解構函式,完成類的一些資源清理工作。
解構函式是特殊的成員函式。
其特徵如下:
1.解構函式名是在類名前加上字元~。
2.無引數,無返回值。
3.一個類有且只有一個解構函式,若未顯式定義,系統會自動生成預設的解構函式。
4.物件生命週期結束時,C++編譯系統自動呼叫解構函式。
5.編譯器自動生成的解構函式,對會自定型別成員呼叫它的解構函式。

相關文章