我试图通过一个简单的自制示例来掌握右值引用并移动语义,但我无法理解特定部分。我创建了以下课程:
class A {
public:
A(int a) {
cout << "Def constructor" << endl;
}
A(const A& var) {
cout << "Copy constructor" << endl;
}
A(A&& var) {
cout << "Move constructor" << endl;
}
A& operator=(const A& var) {
cout << "Copy Assignment" << endl;
return *this;
}
A& operator=(A&& var) {
cout << "Move Assignment" << endl;
return *this;
}
};
Run Code Online (Sandbox Code Playgroud)
我尝试了以下实验,看看我是否可以预测构造函数/运算符将如何被调用: