Costruttori in C++ nelle classi (programmazione ad oggetti)

I costruttori in C++ servono nella programmazione ad oggetti a creare istanze di una classe e ad inizializzarne i valori degli attributi.
I costruttori sono metodi speciali, caratterizzati dal fatto di avere lo stesso nome della classe e dal fatto che creando un nuovo oggetto non occorre dire cosa restituiscono, perché servono appunto a creare un’istanza della classe in cui sono definiti.

Esempio:

Class Rettangolo
{
    int base;
    int altezza;
public:
    Rettangolo (int b, int h)
   { 
               base=b;
               altezza=h;
   }
}

Utilizzo:

int main()
{
   Rettangolo r(12,42);
}

Costruttore di default
Se e solo se in una classe non è esplicitato nessun costruttore, è implicitamente e automaticamente definito un costruttore di default senza parametri, che permette di creare oggetti di quella classe per poi poterci lavorare.

Nota Bene: bisogna porre attenzione in questi casi perché alla creazione di un’istanza di quella classe, non sarà noto il contenuto dei suoi attributi.

Class Rettangolo
{
int base;
int altezza;
}

Utilizzo:

int main()
{
Rettangolo r;
}

Costruttore copia di default
In ogni classe c’è il costruttore copia ed è implementato automaticamente (a meno che non sia sovrascritto),; il costruttore copia di default opera copiando i valori di tutti gli attributi di un oggetto esistente (passato come parametro al costruttore) nel nuovo oggetto creato dal costruttore.

Rettangolo r2 (r1);

Nota: volendo si può definire manualmente il costruttore copia di una classe di fatto sovrascrivendo quello, per approfondire vai alla pagina costruttore copia.

Richiamare da un costruttore un altro costruttore
Quando si definisce un costruttore si può fare in modo che il costruttore richiami un altro costruttore della stessa calsse già dichiarato.

Ad esempio:

Rettanagolo (float  x):Rettangolo (x,x)
{}

In questo esempio il costruttore di Rettangolo con un solo parametro richiama il costruttore di Rettangolo con due parametri, passando due volte lo stesso valore costruendo così un quadrato.

Scrittura compatta per assegnare valori agli attributi tramite il costruttore
Dopo le parentesi tonde dei paramentri che vengono passati al costruttore si possono inizializzare gli attributi, scrivendo dopo i due punti i nomi degli attributi con tra parentesi tonde il valore da assegnargli, nel caso si vogliano inizializzare più attributi in questo modo, vanno separati da virgole-
Ad esempio:

Class Rettangolo 
{     
     int base;
     int altezza; 
     public:     
     Rettangolo (int b, int h):base(b),altezza(h)    
     {}
}

Costruttore nelle classi composte
Vai alla pagina sul costruttore nelle classi composte per capire come impostare un costruttore in modo che richiami il costruttore dei suoi attributi.

Lascia un commento