假设一个函数按值返回a类对象。
A f();
假设我们稍后有一个任务/副本c'tor:
a = f(); //a is of type A - assignment
A aa = f(); // copy c'tor
在赋值/初始化之后是否调用了返回对象的d’tor?
如果返回的对象在复制初始化之前被销毁,那么您将在aa
中复制被销毁的对象。这很奇怪。
返回值优化也可以进行,因此不需要复制返回的对象并对其进行销毁。