Partilhar via


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()
{
}

Consulte também

Referência

Inicialização usando funções de membro especial