martedì 23 ottobre 2012

Uso dei Costruttori

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