Esempio richiamare dal costruttore di un oggetto il costruttore di un suo attributo

Segue spiegazione e codice di esempio in cui c’è una classe con un attributo di un’altra classe, nel codice si vedrà come richiamare il costruttore della seconda classe per l’attributo della prima dal prima costruttore della prima.

Il programma seguente definisce dapprima una classe A con un solo attributo x di tipo int, un costruttore di default, un costruttore con un unico argomento da memorizzare nell’attrubto, e un metodo getX.
Si definisce poi la classe B con un solo attributo chiamato attributo di tipo A, con un costruttore di deafult vuoto e un costruttore con un argomento che richiama per il suo parametro il costruttore della classe A con un argomento.

Nel main poi si creano due istanze della classe A con i due costruttori presenti, e poi se ne stampa il contenuto.

#include<iostream>
using namespace std;

class A {
int x;
public:
A(){x=0;} //costruttore di default
A(int y){x=y;} //costruttore con un argomento
int getX(){return x;} //metodo per restituire il valore dell'attributo x
};

class B {
A attributo;
public:
B(){}//se scrivo così prima devo aver dichiarato esplicitamente il costruttore di defatult di A
B(int n) : attributo(n){}
void print(){cout<<attributo.getX()<<endl;}
};

int main() {
B istanza1(5);
B istanza2;
istanza1.print(); //stamperà 5
istanza2.print(); //stamperà 0
}

 

Annunci

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google photo

Stai commentando usando il tuo account Google. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...