Condividi tramite


Inizializzare gli oggetti membro

Le classi possono contenere gli oggetti membro di un tipo di classe, ma assicurarsi che le richieste di inizializzazione degli oggetti sono soddisfatte, una delle seguenti condizioni deve essere soddisfatta:

  • La classe dell'oggetto contenuto non richiede costruttore.

  • La classe dell'oggetto contenuto ha un costruttore predefinito accessibile.

  • I costruttori tutti della classe contenitore in modo esplicito inizializzano l'oggetto contenuto.

Nell'esempio seguente viene illustrato come eseguire tale inizializzazione:

// spec1_initializing_member_objects.cpp
// Declare a class Point.
class Point
{
public:
    Point( int x, int y ) { _x = x; _y = y; }
private:
    int _x, _y;
};

// Declare a rectangle class that contains objects of type Point.
class Rect
{
public:
    Rect( int x1, int y1, int x2, int y2 );
private:
    Point _topleft, _bottomright;
};

//  Define the constructor for class Rect. This constructor
//   explicitly initializes the objects of type Point.
Rect::Rect( int x1, int y1, int x2, int y2 ) :
_topleft( x1, y1 ), _bottomright( x2, y2 )
{
}

int main()
{
}

Rect classificare, illustrato nell'esempio precedente, contenuto di due oggetti membro di classe Point.Il costruttore in modo esplicito inizializza gli oggetti _topleft e _bottomright.Si noti che i due punti seguono la parentesi di chiusura del costruttore (nella definizione).I due punti sono seguiti dai nomi dei membri e dagli argomenti con cui inizializzare oggetti di tipo Point.

[!NOTA]

L'ordine in cui gli inizializzatori di membri sono specificati nel costruttore non riguarda l'ordine in cui i membri vengano costruiti; i membri vengono costruite nell'ordine in cui vengono dichiarati nella classe.

riferimento e const gli oggetti membro devono essere inizializzati utilizzando la sintassi di inizializzazione dei membri illustrata nella sezione della grammatica in Inizializzare le basi e i membri.Non esiste un altro modo per inizializzare questi oggetti.

Vedere anche

Riferimenti

Inizializzare le basi e i membri