我预计会有2个复制构造函数调用,一个用于按值返回,另一个用于按值传递参数。但它一次也不会调用复制构造函数:
#include<iostream>
using namespace std;
class MyClass
{
public:
MyClass(){}
MyClass (const MyClass &)
{
cout << "copy" <<endl;
}
};
MyClass f()
{
return MyClass();
}
void g(MyClass i)
{
i;
}
int main()
{
f();
g(MyClass());
return 0;
}
为什么?