問題如下:
class A
{
public:
A();
const int d[2];
};
A::A()// 如何初始化數組d?
{
}
void main()
{
}
解決辦法:
class A
{
public:
A();
static const int d[2];
};
A::A()
{
}
const int A::d[2] = {3, 4};
int main()
{
A a;
cout << a.d[0] << ", " << a.d[1] << endl;
return 0;
}
C++為類中提供類成員的初始化清單
類對象的構造順序是這樣的:
1.配置設定記憶體,調用構造函數時,隐式/顯示的初始化各資料成員
2.進入構造函數後在構造函數中執行一般計算
1.類裡面的任何成員變量在定義時是不能初始化的。
2.一般的資料成員可以在構造函數中初始化。
3.const資料成員必須在構造函數的初始化清單中初始化。
4.static要在類的定義外面初始化。
5.數組成員是不能在初始化清單裡初始化的。
6.不能給數組指定明顯的初始化。