初始化陣列
如果類別有一個建構函式,建構函式會初始化該類別的陣列。 如果在初始設定式清單中,於陣列中的項目有較少的項目,預設建構函式用於其餘的項目。 如果沒有預設建構函式定義為類別時,必須完成初始設定式清單 — 也就是一定要有一個初始設定式在陣列中的每個項目。
請考慮Point會定義兩個建構函式的類別:
// initializing_arrays1.cpp
class Point
{
public:
Point() // Default constructor.
{
}
Point( int, int ) // Construct from two ints
{
}
};
// An array of Point objects can be declared as follows:
Point aPoint[3] = {
Point( 3, 3 ) // Use int, int constructor.
};
int main()
{
}
第一個元素的aPoint使用建構函式來建構Point( int, int )。 剩餘的兩個項目會使用預設建構函式所建構的。
靜態成員的陣列 (是否 const 與否) 可以在它們的定義 (類別宣告之外) 中初始化。 例如:
// initializing_arrays2.cpp
class WindowColors
{
public:
static const char *rgszWindowPartList[7];
};
const char *WindowColors::rgszWindowPartList[7] = {
"Active Title Bar", "Inactive Title Bar", "Title Bar Text",
"Menu Bar", "Menu Bar Text", "Window Background", "Frame" };
int main()
{
}