看板 C_and_CPP 關於我們 聯絡資訊
class classA { public: classA(int x); ... } class classB { public: classB(); classB(classA& a1, classA& a2); classA operator*(const classB& b1, const classB& b2); ... }; int main(){ ... classA aa(1,1); cout << classB(aa, classA(99)) << endl; // error } 資料結構大概長這樣 相對應的operator<< 有overload 過 現在問題大概是兩個黃色標記處 因為我想要我construction 時可以不copy情況下取reference做運算 但是由於我想要一步登天 在呼叫的時候使用anonymouse obj 似乎會無法做reference 遇到這種情況大家都是如何取捨呢? 是直接把classB constructor 的& 去掉 還是在使用的時候 宣告出來一個instance(例如 aa) 才丟進去使用呢? -- ≡ Ⅲ chung li, 5 tsan fung long, ya hwa 4 zhou dong yea tsan shung 5 z bow z 7, 5 gu bu z fung, kang wou ming zhu tsau gin da tong tsong yea way gin, may why zhou sang ley, so chang bu e, mo to 5 gin gong tong sin song der, kwong tsaer 4 zhong, tong sin song der, kwong tsaer 4 zhong, -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.117.169.209
loveflames:加上const? 12/07 18:35
wawi:看完簽名檔大笑XDDD 12/07 18:36
POSIX:除了我提到的兩種作法外 對於construction有更好作法嗎? 12/07 18:39
james732:一樓說加上const不符合你的期望嗎? 12/07 18:40
POSIX:果然!!! 3q 1F/4F 12/07 18:41
loveme00835:或是多加一個 & 也可 XD 12/07 18:47
james732:多加一個 & 該不會是 rvalue ref 吧? 12/07 18:56
loveme00835:是阿 0.0 12/07 18:57
james732:其實我還不懂rvalue ref是什麼 XD 原來可以用在這裡 12/07 18:58
Yshuan:版上有篇精華寫得很詳細 rvalue ref 12/07 19:21