可能重复:
为什么在这种情况下不调用复制构造函数?
考虑以下代码片段:
#include <iostream>
using namespace std;
class Test
{
char name[16];
public:
Test ()
{
cout <<"Inside Constructor"<<endl;
}
Test (const Test & t)
{
cout <<"Inside Copy Constructor "<<endl;
}
};
Test f()
{
return Test();
}
int main ( int argc, char ** argv)
{
Test t;
Test t1 = f();
}
Test t1= f() -> 它调用 f(),并返回 Test 对象,然后根据我的理解应该调用复制构造函数。但我得到以下输出:
Inside Constructor
Inside Constructor
我的理解有什么问题?