Inizializzazione tramite funzioni membro speciali
In questa sezione viene descritta l'inizializzazione mediante le funzioni membro speciali. Vengono ampliate le seguenti discussioni sull'inizializzazione:
Inizializzazione degli aggregati in cui viene illustrato come inizializzare matrici di tipi nonclass e oggetti di tipi di classi semplici. Questi tipi di classi semplici non possono avere membri privati o protetti, né classi base.
Costruttori, in cui viene illustrato come inizializzare gli oggetti di tipo classe utilizzando le funzioni costruttore speciali.
Il metodo di inizializzazione predefinito consiste nell'eseguire una copia bit per bit dall'inizializzatore nell'oggetto da inizializzare. Tale tecnica è applicabile solo a:
Oggetti di tipi incorporati. Di seguito è riportato un esempio.
int i = 100;
Puntatori. Di seguito è riportato un esempio.
int i; int *pi = &i;
Riferimenti. Di seguito è riportato un esempio.
String sFileName( "FILE.DAT" ); String &rs = sFileName;
Oggetti di tipo classe, in cui la classe non dispone di membri privati o protetti, di funzioni virtuali e classi base. Di seguito è riportato un esempio.
// spec1_special_member_functions.cpp // compile with: /LD struct Point { int x, y; }; Point pt = { 10, 20 }; // Static storage class only
Le classi possono specificare un'inizializzazione migliore definendo le funzioni costruttore. Per ulteriori informazioni sulla dichiarazione di tali funzioni, vedere Costruttori. Se un oggetto è di un tipo di classe con un costruttore, l'oggetto deve essere inizializzato oppure deve essere presente un costruttore predefinito. Gli oggetti non specificatamente inizializzati chiamano il costruttore predefinito della classe.