初期化の配列
クラスにコンストラクターがある場合そのクラスの配列はコンストラクターによって初期化されます。配列の要素初期化子リストにいくつかの項目がある場合は既定のコンストラクターは残りの要素で使用されます。既定のコンストラクターがクラスに定義されていない場合初期化子リストがいっぱいである必要があります。つまり配列の各要素に対して 1 回初期化子が必要です。
2 人のコンストラクターを定義する 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) されます); 残りの 2 個の要素は既定のコンストラクターを使用します。
静的メンバーの配列は定義 (かどうか 定数 ) 初期化できます (クラス宣言の外側)。次に例を示します。
// 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()
{
}