Везде пишут что при возврате локального объекта класса из функции создается промежуточный временный объект который потом и копируется как возвращаемое значение. Как я понимаю получается три объекта, на пример при коде
A func()
{
A a;
return a;
}
int main()
{
A a;
a = func();
}
первый объект это а из func(), второй это a из main() и третий это временный объект возвращающийся из func(). Так? Но я перегрузил конструкторы по умолчанию и копирования, operator= и деструктор поместив в них выводы сообщения и при исполнении кода получил сообщения только от конструктора по умолчанию a из main, а из func(), operator= для а из main, и деструктора a из main(). А где же промежуточный временный объект? Благодарю.