Мой кодПочему деструктор получает вызов дважды, но конструктор только один раз?
class CTemp{
public:
CTemp(){
printf("\nIn cons");
}
~CTemp(){
printf("\nIn dest");
}
};
void Dowork(CTemp obj)
{
printf("\nDo work");
}
int main()
{
CTemp * obj = new CTemp();
Dowork(*obj);
delete obj;
return 0;
}
Выходной сигнал, который я получаю
In cons
Do work
In dest
In dest
Теперь почему конструктор дозвонились один раз, а деструктор вызывается дважды? Может ли кто-нибудь объяснить это?
Да. И работа должна занять 'const CTemp &'. –
так, чтобы в этом случае вызывался конструктор копирования? – singh
@singh да. вызываемый по умолчанию экземпляр c-tor будет вызван. – ForEveR