返回一个对象会使用移动构造函数/复制构造函数吗?

时间:2013-06-20 11:58:40

标签: c++ constructor rvalue-reference

X是一个类

X operator+()
{
X a;
return a;
}

Book iam阅读(ivor horton C ++)说,当调用此函数并为类'X'实现移动构造函数时,将调用类构造函数和移动构造函数。 如果未实现移动构造函数,则调用构造函数和复制构造函数

我觉得因为对象'a'是一个左值复制构造函数应该一直调用。 move构造函数将rvalue引用作为参数,因此无法将左值传递给它。

任何人都可以解释为什么要调用移动构造。

0 个答案:

没有答案