E possibile da un costruttore C++ chiamarne esplicitamente un altro?
Esempio:
class C
{
public:
C(); // <- primo costruttore
C(int); // <- secondo costruttore
~C(); //<- distruttore
};
...
C::C()
{
//inizializzazione di "base"
}
C::C(int a)
{
C::C(); //<- tento di richiamare il primo costruttore per le op di base
//uso il valore di a per altre operazioni
}
...
C::~C()
{
cout<<"sono nel distruttore\n";
}
Ora, se tento di costruire un oggetto con il secondo costruttore, la prima operazione che viene effettuata è... richiamare il distruttore! (Viene mostrata come prima cosa l'output del distruttore e poi gli output del costruttore).
Crendo un oggetto con il primo costruttore, tutto funziona bene.Lo stesso dicasi se uso il secondo costruttore dopo aver eliminato all'interno di esso l'invocazione del primo costruttore.
Dove sbaglio?