以下代碼只印出"fun"
若把移動構造函示宣告成delete又會編譯失敗
造裡說函式回傳一個非引用的物件是個右值,會呼叫移動構造函式
再用此右值初始化c3應該會再呼叫移動構造函式第二次
但為何一次都沒呼叫到呢?
請各位指教一下,謝謝~
class ch{
public:
ch(){}
ch(const ch&){cout<<"ch's copy constructor"<<endl;}
ch(ch&&){cout<<"ch's move constructor"<<endl;}
};
ch fun()
{
ch c;
cout<<"fun"<<endl;
return c;
}
int main()
{
ch c3=fun();
return 0;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.25.220.250
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1434463670.A.804.html
推
06/16 22:41, , 1F
06/16 22:41, 1F
→
06/16 22:42, , 2F
06/16 22:42, 2F
→
06/16 22:42, , 3F
06/16 22:42, 3F
→
06/16 22:53, , 4F
06/16 22:53, 4F
推
06/17 01:00, , 5F
06/17 01:00, 5F
推
06/17 02:41, , 6F
06/17 02:41, 6F
→
06/17 02:41, , 7F
06/17 02:41, 7F
→
06/17 03:43, , 8F
06/17 03:43, 8F
推
06/17 09:38, , 9F
06/17 09:38, 9F
→
06/17 09:39, , 10F
06/17 09:39, 10F
→
06/17 09:41, , 11F
06/17 09:41, 11F