- 類的成員初始化列表的初始化的基本語法,類的構造函數還可以運用此語法為其變量初始化;
class Class { private: int a; int b; char ch; public: Class(int a, int b, char ch); }; Class::Class(int a, int b, char ch) : a(1), b(0), char(A) // a(1), b(0), char(A) 為Class類為其初始化數據。 { //插入代碼 }
- 警告:不能將成員初始化列表語法用於除構造函數之外的其他 “類” 方法。
- 從概念上說:這些初始化工作是在對象創建時完成的,此時還未執行括號內的任何代碼;
- 使用時請注意以下幾點:
- 這種格式只能用於構造函數;
- 必須用這種格式來初始化非靜態 const 數據成員(在C++11 標准之前);
在C++11 標准之中可以使用跟直觀的初始化方式;
class Class { private: int a = 0; const int b = 10; ...... } //可以在聲明是直接進行初始化數據
這種初始化與前面的初始化等價;
- 必須用這種格式初始化引用數據成員;
- 數據成員被初始化的順序與他們出現在類聲明中的順序相同,與初始化器中的排列順序無關。
- 如果你願意也可以為普通變量使用初始化列表初始化
int a = 10; 等價於 int a(0);
