Salve,
sto studiando i costruttori di copia del C++ e da quello che ho capito dalla teoria il costruttore di copia dovrebbe funzionare per copiare l'oggetto non solo quando passo un oggetto come parametro formale ad una funzione ma anche se una funzione me lo restituisce, sto cercando di farlo con un esempio ma non riesco, tipo:
se ho capito bene:codice:class num { int i; public: num(){cout << this <<endl;}; num(const num& a){cout << "COSTRUISCO COPIA" <<endl;}; void set(int h){this->i=h;}; void shownum(); //~num(){cout << "Distruggo" <<endl;} }; num getnum(int j) { num a; a.set(j); return a; } void num::shownum() { cout << "valore " << this->i << endl; } int main() { num temp=getnum(5); }
getnum restituisce un oggetto di classe num, ma non dovrebbe invocare il costruttore di copia per creare una copia dell'oggetto che restituisce ?
Non ho capito la teoria o ho cannato l'esempio ?
Grazie in anticipo per ogni consiglio....