Inizializzare matrici
Se la classe dispone di un costruttore, le matrici di tale classe vengono inizializzate da un costruttore.Se vi sono meno elementi nell'elenco di inizializzatori che gli elementi nella matrice, il costruttore predefinito viene utilizzato per gli elementi rimanenti.Se nessun costruttore predefinito per la classe, nell'elenco di inizializzatori deve essere completo, ovvero deve essere un inizializzatore per ogni elemento della matrice.
considerare Point classe che definisce due costruttori:
// 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()
{
}
il primo elemento di aPoint viene costruito utilizzando il costruttore Point( int, int ); i due elementi rimanenti vengono costruiti utilizzando il costruttore predefinito.
Matrici statiche del membro (se const o meno) può essere inizializzato nelle relative definizioni (all'esterno della dichiarazione di classe).Di seguito è riportato un esempio:
// 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()
{
}