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!