Quando sono istanziati degli oggetti, spesso si
desidera una qualche inizializzazione, solitamente con l'assegnazione
di valori ai membri dati. Fortunatamente la classe prevede una
speciale funzione membro chiamata costruttore
che automaticamente viene richiamata ogni qualvolta un oggetto viene
definito. La grossa convenienza è nell'uso del costrutto per
effettuare l'inizializzazione del nuovo oggetto.
Il programma Roditore costruttore
Questo programma
dimostra l'uso dei costruttori. Il programma istanza un nuovo oggetto
Roditore, il quale
richiama il suo costruttore automaticamente. Per prima cosa viene
annunciata la nascita di un nuovo roditore. Quindi assegna un valore
alla variabile fame del roditore, provando che il costruttore di
fatto inizializza il Roditore.
Il codice è il seguente:
//
Roditore costruttore
//
Dimostrazione dei costruttori
#include
<iostream>
using
namespace std;
class Roditore
{ public:
int i_Fame;
Roditore( int fame =0 ); //
prototipo del costruttore
void Saluto(); // funzione
membro prototipo
};
Roditore::Roditore( int fame
) // costruttore
{ cout << “E' nato
un nuovo roditore!” << endl;
i_Fame = fame;
}
void Roditore::Saluto()
//definizione funzione membro
{ cout << “Ciao, io
sono un roditore. Questo è il mio livello di fame ” <<
i_Fame << “.\n”;
}
int main()
{
Roditore topo(5);
topo.Saluto();
return
0;
}
Dichiarare e definire un Costruttore
La dichiarazione
del costruttore nella classe Roditore
è fatta con il seguente codice:
Roditore( int fame =0 ); //
prototipo del costruttore
Come si può notare dalla dichiarazione, il
costruttore non restituisce alcun valore. Inoltre è illegale
definire un valore di restituzione da parte del costruttore. Inoltre
non vi è flessibilità nel nome del costruttore, esso deve avere lo
stesso nome della classe. Il costruttore vien definito all'esterno
della classe stessa con le seguenti istruzioni:
Roditore::Roditore( int fame
) // costruttore
{ cout << “E' nato
un nuovo roditore!” << endl;
i_Fame = fame;
}
Il costruttore visualizza un messaggio a schermo, il
quale afferma la creazione di un nuovo roditore e inizializza il
membro dati i_Fame dell'oggetto con il valore di l'argomento che
viene inviato al costruttore. Se non viene inviato alcun valore,
l'argomento di default è 0.
Chiamare un costruttore automaticamente
Se il costruttore non viene richiamato
esplicitamente, comunque non appena vien istanziato il nuovo oggetto,
il costruttore è chiamato automaticamente. In main(), il
costruttore viene messo in azione dal seguente codice:
Roditore topo(5);
Quanto topo viene istanziato, il costruttore
visualizza automaticamente il messaggio “E' nato un nuovo
roditore!”. Quindi il costruttore assegna valore 5 alla variabile
i_Fame dell'oggetto. Ciò prova che il costruttore ha lavorato,
tornando a main(), viene chiama la funzione Saluto()
dell'oggetto per essere sicuri, che visualizza “Ciao, io sono un
roditore. Questo è il mio livello di fame 5”.
Nessun commento:
Posta un commento