看板 C_and_CPP 關於我們 聯絡資訊
VC 2005 sp2 Windows Form /CLR 因為要宣告物件陣列, 所以想說用placement new會比較好, new (ary[cur]+i) MyClass(base); 結果VC告訴我: operator new 函式不使用2引數 (error C2660: 'operator new' : function does not take 2 arguments) 有人知道這是為什麼、該怎麼解決嗎? -- 岬:「你什麼也別問。」 內田:「我不會多話,但我只問你一件事。」 岬:「什麼?」 內田:「你要...喝咖啡嗎?」 --Katsu(青春交叉點) By Adachi(安達充) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.207.202
ledia:#include <new> 試試? 03/15 21:37
loveme00835:我很好奇中間那一團是什麼 03/15 22:22
LPH66:回樓上 那就是 placement new 03/15 23:23
LPH66:原PO該不會是用到這個語法了吧: 03/15 23:27
LPH66:http://www.glenmccl.com/nd_cmp.htm 03/15 23:27
loveme00835:感謝樓上, 不常用都忘光光了XD 03/16 05:46
ec75413:謝一樓的學長 It works! 03/16 14:52
ec75413:也謝謝三樓的學弟 不過裡面似乎沒有提到我這種普通的用法 03/16 14:53
ec75413:我這種用法主因是物件陣列若需要使用傳參數的建構子 03/16 14:54
ec75413:可以先用operator new[]宣告陣列後再以placement new建構 03/16 14:54
ec75413:這樣可以避免單一物件呼叫多餘的建構子 03/16 14:55
ec75413:不過解構子也就必須自己呼叫 03/16 14:55