Discussione: [c++]Costruttori
View Single Post
Old 06-07-2008, 20:18   #5
marco.r
Senior Member
 
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
Quote:
Originariamente inviato da Sabonis Guarda i messaggi
Supponiamo di avere una classe Point.
Che differenza c'è fra un costruttore di questo tipo:

Point(int x, int y){
x_ = x;
y_ = y;
}

e un costruttore di questo tipo:
Point(int x, int y):
x_(x),
y_(y){


}

Sono del tutto equivalenti? Se non lo sono quando si usa il primo e quando il secondo?
Nel primo caso infatti prima le variabili x_ e y_ vengono inizializzate con il costruttore di default e quindi viene usato l'operatore di assegnamento per copiare il contenuto da x a x_ e da y a y_. Nel Secondo caso invece viene invocato direttamente il costruttore con un argomento.
Avendo a che fare con interi in pratica non cambia nulla perche' il costruttore di default non fa nulla e quello con argomento effettua l'assegnamento. Se tu pero' al posto di int avessi oggetti piu' complessi la differenza potrebbe notarsi.
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele
marco.r è offline   Rispondi citando il messaggio o parte di esso