Ciao a tutti,
so benissimo che in ogni classe deve esserci un costruttore di default (quindi un costruttore senza parametri), ma se creo un costruttore che accetta parametri inizializzandoli automaticamente? mi spiego meglio:
Ho questa classe:
codice:
class complex
{
//stato interno
double real, imag;
//metodi
public:
//costruttore
complex(); //costruttore di default
complex(double r, double i);
void print();
//metodi getter/setter
double getReal();
double getImag();
void setReal(double newValue);
void setImag(double newValue);
};
e questa classe:
codice:
class complex
{
//stato interno
double real, imag;
//metodi
public:
//costruttore
complex(double r = 0.0, double i = 0.0 );
void print();
//metodi getter/setter
double getReal();
double getImag();
void setReal(double newValue);
void setImag(double newValue);
};
la prima prevede il costruttore di default
codice:
complex::complex() : complex(0,0) {};
che richiama a sua volta l'altro costruttore passandogli i valori 0 e 0 (in modo tale da inizializzare il numero a 0).
L'altra classe non ha il costruttore di default e all'apparenza funziona lo stesso
quale versione è la migliore/più corretta tra le due?
Grazie mille!