class x
{
int a;
public:
x()
{
cout<<"\n\ndefault constructor";
}
x(x& obj)
{
cout<<"\n\ncopy constructor";
}
x fun()
{
x ob;
return ob;
}
};
int main()
{
x ob1;
x ob2=ob1.fun();
return 0;
}
inizialmente, questo codice ha dato un errore "nessuna funzione di corrispondenza per la chiamata a 'x :: x (x)'", quando ho cambiato il costruttore di copia perconst nel costruttore di copia in C++
x(const x& obj)
{
cout<<"\n\ncopy constructor";
}
l'uscita diventa
predefinita costruttore
predefinita costruttore
ancora il costruttore di copia non è in esecuzione .... perché?
http://stackoverflow.com/questions/1932700/copy-constructor-not-called-but-compiler-complains-that-theres-no – Mat