[問題] 請問C++ class 能夠在指定的記憶體位置建構嗎?

看板C_and_CPP作者 (拒看低質媒體)時間13年前 (2011/08/25 20:42), 編輯推噓2(206)
留言8則, 5人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) win32 API 問題(Question): 我在寫一個class 專門來處理不同process 傳遞資料的方法 當利用CreateFileMapping獲得一塊記憶體之後 我希望能夠在該記憶體區段建構一個class 這樣接收端在parsing的時候比較方便 但是我不知道要如何正確的作到這件事情. 目前我是簡單在class constructor裡面, 用memcpy把 this之後的記憶體區塊複製到打開的檔案空間內 但是我不喜歡這個方法 還請高手解惑, 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.137.10.90

08/25 20:48, , 1F
你用struct還比較方便點...
08/25 20:48, 1F

08/25 20:52, , 2F
struct 是不難, 只是我想把東西封裝好所以想用class試試看
08/25 20:52, 2F

08/25 20:57, , 3F
placement new可能是你需要的
08/25 20:57, 3F

08/25 20:59, , 4F
placement new 的限制,好像是必須在 Heap 範圍內,且接收
08/25 20:59, 4F

08/25 20:59, , 5F
端如果跟傳送端的 Address Space 不一樣,位址就沒意義
08/25 20:59, 5F

08/25 21:01, , 6F
沒注意到他是跨process的使用...那我推IPC+serialize
08/25 21:01, 6F

08/25 22:01, , 7F
用struct比較好,如果你的class有繼承那麻煩就大了
08/25 22:01, 7F

08/25 22:27, , 8F
對耶 我可以在class裡面放pointer to structure 這樣就好
08/25 22:27, 8F
文章代碼(AID): #1ELaCQFT (C_and_CPP)