У меня есть функция, возвращающая локальный объект:
class AT
{
public:
AT() { cout<<"construct"<<endl; }
AT(const AT& at) { cout<<"copy"<<endl; }
~AT() { cout<<"destroy"<<endl; }
};
AT funcAt()
{
AT tmp;
return tmp;
}
...
funcAt();
вывод:
construct
copy
destroy
destroy
Полагаю, существуют только конструкции и уничтожения "tmp", так почему же существует копирование и другое уничтожение? где находится скопированный объект?