我有以下兩個功能:爲什麼我的複製構造函數只在這種情況下調用兩次?
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