C++——建構函式之初始化列表

@餘笙!發表於2020-10-30

1、建構函式體賦值

建構函式體中的語句只能將其作稱為賦初值,而不能稱為初始化,因為初始化只能初始化一次,而建構函式體內可以多次賦值

2、初始化列表

初始化列表是成員變數初始化的地方,初始化列表以一個冒號開始,以逗號分隔的資料成員列表,每個“成員變數”後面跟一個放在括號中的初始值或表示式

注意:

  • 每個成員變數在初始化列表中只能出現一次(初始化只能初始化一次)
  • 類中包含以下成員,必須放在初始化列表位置進行初始化【引用成員變數、const成員變數、自定義型別成員(該類沒有預設建構函式)】

  • 成員變數在類中宣告次序就是其在初始化列表中的初始化順序,與其在初始化列表中的先後次序無關 

舉例:

變數的宣告次序為_a2,_a1,所以初始化順序為_a2(_a1),_a1(a),由於未初始化的_a1 是隨機值,所以_a2是隨機值

3、explicit關鍵字

建構函式不進可以構造和初始化物件,對於單個引數的建構函式還有型別轉換的作用

用explicit修飾建構函式,將會禁止單參建構函式的隱式型別轉換

相關文章