→ james732:A() 這個動作已經實體化了 11/08 15:56
可以請問實體化的物件名是? 就叫A() 嗎?
→ diabloevagto:那種是rvalue嗎? 11/08 17:09
※ 編輯: k0783154 來自: 140.112.4.181 (11/08 17:20)
我剛發現這樣的實體生命週期只有一行
A();
A().func(1);
---Output---
A1: 0
I am a Destructor!
A1: 0
A1: 1
I am a Destructor!
不知道這種用法 有什麼應用呢?!
※ 編輯: k0783154 來自: 140.112.4.181 (11/08 17:38)
→ x000032001:看你物件怎麼寫阿@@ 怎麼應用...string好像能用到? 11/08 18:39
→ angleevil:這種用法有一個名稱,只是我忘記了.但是它屬於暫時物件 11/08 21:04
→ angleevil:而且c++標準規範有限制它的使用.不過我不太懂標準規範 11/08 21:05
→ akasan:google "c++ temporary object" 前幾個搜索結果還不錯 11/08 21:24
→ k0783154:感謝你們 11/08 23:25
推 LPH66:話說我最近發現這種寫法的一個用途: 11/08 23:33
→ LPH66:stringstream(some_c_string) >> some_variable; 11/08 23:34
→ LPH66:在不想重新引入 cstdio 的情況下這能當做 sscanf 的取代法 11/08 23:34
→ LPH66:又可以使用到 C++ >> 型式輸入的一些好處 11/08 23:35
→ LPH66:而且還不佔變數名 XD 11/08 23:35
→ LPH66:sprintf 也能用類似的方法改寫 不過由於 << 的回傳型態問題 11/08 23:37
→ LPH66:需要手動做 dynamic_cast 就是了... 11/08 23:37
→ angleevil:他的名稱不是temporary object.只是他有這個性質而已 11/09 09:23