我有以下两个功能:为什么我的复制构造函数只在这种情况下调用两次?
Class foo(Class arg)
{
return arg;
}
Class bar(Class *arg)
{
return *arg;
}
现在,当我只调用foo(ARG),拷贝构造函数当然是所谓的两倍。当我仅仅打电话给酒吧(& arg)时,它只会被调用一次。因此,我期望
foo(bar(&arg));
复制构造函数在这里被调用三次。但是,它仍然只被调用两次。这是为什么?编译器是否认识到另一个副本是不需要的?
在此先感谢!
非常感谢!帮助了我很多! – Veluria 2013-05-12 12:04:10
@Pete:很高兴:) – 2013-05-12 12:04:49