按值从函数返回对象并在赋值/复制 C'tor C++ 中使用它



假设一个函数按值返回a类对象。

A f();

假设我们稍后有一个任务/副本c'tor:

a = f(); //a is of type A - assignment
A aa = f(); // copy c'tor

在赋值/初始化之后是否调用了返回对象的d’tor?

如果返回的对象在复制初始化之前被销毁,那么您将在aa中复制被销毁的对象。这很奇怪。

返回值优化也可以进行,因此不需要复制返回的对象并对其进行销毁。

最新更新