复制构造函数调用次数!!!
class A{
public:
A(){}
A(const A &a){cout<<"abc"<<endl;}
};
A f(A u) //问题在次,为什么改成A& f(A u) 次数就加一了呢
{
A a(u);
A b(a);
return b;
}
int main(int argc, char *argv[])
{
A b;
A a=f(b);
getchar();
return 0;
}
我觉得复制构造函数应该调用了4次,但程序只输出3次,不知道为什么。
而按照我注释的改变一下就变为输出4次了,不知道为什么,大家指教。