Inicialização de matrizes
Se uma classe tem um construtor, arrays dessa classe são inicializados por um construtor.Se houver menos itens na lista de inicializador de elementos na matriz, o construtor padrão é usado para os demais elementos.Se nenhum construtor padrão está definido para a classe, a lista de inicializador deve estar completa — ou seja, deve haver um inicializador de cada elemento da matriz.
Considere a Point classe que define dois construtores:
// 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()
{
}
O primeiro elemento da aPoint é construído utilizando o construtor Point( int, int ); os dois elementos restantes são construídos usando o construtor padrão.
Matrizes de membro estático (se const ou não) podem ser inicializados em suas definições (fora da declaração de classe).Por exemplo:
// 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()
{
}