X 是一个类
X operator+()
{
X a;
return a;
}
Book iam reading(ivor horton C++)说,当调用这个函数并且已经为类'X'实现了移动构造函数时,会调用类构造函数和移动构造函数。如果未实现移动构造函数,则调用构造函数和复制构造函数
我觉得因为对象'a'是一个左值复制构造函数,应该一直被调用。move 构造函数将右值引用作为参数,因此不能将左值传递给它。
谁能解释为什么调用移动构造函数。
X 是一个类
X operator+()
{
X a;
return a;
}
Book iam reading(ivor horton C++)说,当调用这个函数并且已经为类'X'实现了移动构造函数时,会调用类构造函数和移动构造函数。如果未实现移动构造函数,则调用构造函数和复制构造函数
我觉得因为对象'a'是一个左值复制构造函数,应该一直被调用。move 构造函数将右值引用作为参数,因此不能将左值传递给它。
谁能解释为什么调用移动构造函数。