我有一个简单的类Employee,它有三个字符串(名字,中间名和姓字),并定义了复制和移动构造函数和赋值运算符,并在每个字符串调用时打印文本。我的主要课程中也有这段代码
int main() {
Employee e = getEmp();
return 0;
}
Employee getEmp() {
Employee emp("John","","Smith");
return emp;
}
这是输出:
This is Employee constructor
This is Employee destructor
因此永远不会调用复制或移动构造函数,只创建一个Employee,而当getEmp()返回时,我期待调用移动构造函数。发生了什么事?