为什么在这个C ++代码中没有调用复制构造函数?

时间:2015-08-09 17:15:08

标签: c++ constructor copy-constructor move-constructor

我有一个简单的类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()返回时,我期待调用移动构造函数。发生了什么事?

0 个答案:

没有答案