Quote:
Originariamente inviato da Sabonis
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.