語法規則
classname::
classname()
:m1(v1),m2
(v1,v2),m3
(v3)
#include
class
test
intgetci()
};intmain()
注意事項
成員的初始化順序與成員的宣告順序相同
成員的初始化順序與初始化列表中的位置無關
初始化列表先於建構函式的函式體執行
#include
class
value
intgeti()
};class
test};
intmain()
輸出結果 2 3 1 (成員初始化順序很重要!!!)
成員變數初始化必須經過初始化列表完成
類中的const成員會被分配空間的
類中的const成員本質是唯讀變數
類中的const成員只能在初始化列表中指定初始值
編譯器無法直接得到const成員的初始值,因此無法進入符號表 成為真正意義上的常量!!!
const成員變數必須在初始化列表中指定初值
初始化 1 預設初始化 列表初始化
初始化的基本概念 事實 初始化和賦值是兩個完全不同的操作。初始化,是建立變數時賦予其乙個初始值。賦值,是把物件的當前值擦除,用乙個新值代替。列表初始化 p39 作為c 11新標準的一部分,用花括號 來初始化變數得到了全面應用。出於某些原因,這種初始化的方式叫做列表初始化。現在,無論是初始化物件還是某...
初始化列表
與其他函式不同,建構函式除了有名字,引數列表和函式體之外,還可以有初始化列表,初始化列表以冒號開頭,後跟一系列以逗號分隔的初始化字段。在c 中,struct和class的唯一區別是預設的克訪問性不同,而這裡我們不考慮訪問性的問題,所以下面的 都以struct來演示。struct foo 初始化列表 ...
初始化列表
初始化列表一般用於建構函式賦值的操作中,它的常用賦值物件有 1 常量 常資料成員只能用初始化列表來初始化 2 引用型別 3 無參建構函式的類的物件。具體格式為 類名 形參表 如int x,int y 成員資料 x 成員資料 y 意思是成員資料繫結x,y。下面以幾個例子來說明一下 一 求圓面積 inc...