View Full Version : [c++]Costruttori
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?
si sono equivalenti...credo sia più una questione estetica che funzionale :)
>|HaRRyFocKer|
04-07-2008, 22:14
sono equivalenti, anche se il secondo caso è più "logicamente" vicino al concetto di costruzione di un oggetto... cmq hai sbagliato sezione credo... :D
Programmazione Rulez! :O
è uguale, ma da quello che ricordo devi usare obbligatoriamente il secondo per inizializzare dati costanti e per inizializzare costruttori di classi base se fai l'ereditarietà
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.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.