PDA

Visualizza la versione completa : [C++] Costruttori


vicio_93
16-01-2015, 18:02
Qual'č la differenza tra queste due scritture?

[CODE] Prova::Prova (string a, string b):
nome(a), cognome (b) {;}

e

Prova::Prova (string a, string b){
nome=a;
cognome=b;
}
[\CODE]
Quale delle due č preferibile?

Onizuka8
16-01-2015, 20:26
Ciao, il primo caso utilizzi una lista di inizializzazione. Non mi ricordo precisamente, magari aspetta qualche risposta pių approfondita, ma intanto:

La lista di inizializzazione, inizializza appunto, i membri prima della chiamata del corpo della funzione, sono utili per esempio per definire variabili costanti, e poi per cose pių compelsse tipo i moduli. Magari sbaglio ma dovresti poter fare:


class TuaClasse{
.
.
.
const int a;
.
.
public:
.
.
TuaClasse(int c);
.
.
};

TuaClasse::TuaClasse(int c) : a(c) {.......};

edit:

Ho anche provato ed effettivamente se provi ad inizializzare c all'interno del corpo da errore facendolo nella lista invece puoi.

Loading