[語法] placement new in VC?

看板C_and_CPP作者 (無虧/明月幾時有?)時間15年前 (2010/03/15 18:47), 編輯推噓5(507)
留言12則, 4人參與, 最新討論串1/1
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

03/15 21:37, , 1F
#include <new> 試試?
03/15 21:37, 1F

03/15 22:22, , 2F
我很好奇中間那一團是什麼
03/15 22:22, 2F

03/15 23:23, , 3F
回樓上 那就是 placement new
03/15 23:23, 3F

03/15 23:27, , 4F
原PO該不會是用到這個語法了吧:
03/15 23:27, 4F

03/15 23:27, , 5F

03/16 05:46, , 6F
感謝樓上, 不常用都忘光光了XD
03/16 05:46, 6F

03/16 14:52, , 7F
謝一樓的學長 It works!
03/16 14:52, 7F

03/16 14:53, , 8F
也謝謝三樓的學弟 不過裡面似乎沒有提到我這種普通的用法
03/16 14:53, 8F

03/16 14:54, , 9F
我這種用法主因是物件陣列若需要使用傳參數的建構子
03/16 14:54, 9F

03/16 14:54, , 10F
可以先用operator new[]宣告陣列後再以placement new建構
03/16 14:54, 10F

03/16 14:55, , 11F
這樣可以避免單一物件呼叫多餘的建構子
03/16 14:55, 11F

03/16 14:55, , 12F
不過解構子也就必須自己呼叫
03/16 14:55, 12F
文章代碼(AID): #1BdX0yw4 (C_and_CPP)