[問題] 不支援new的C 該怎麼做

看板C_and_CPP作者 (pf719212)時間13年前 (2011/06/29 15:01), 編輯推噓9(9019)
留言28則, 12人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) arm-liunx 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) no 問題(Question): 一個class 為Box Box *lpbox; lpbox = new Box(); 一個系統只支援C 不支援C++與new的函數 這段該怎麼做呢? 餵入的資料(Input): 預期的正確結果(Expected Output): 用單純用C該怎麼做這段 錯誤結果(Wrong Output): 程式碼(Code):(請善用置底文網頁, 記得排版) Box *lpbox; lpbox = new Box(); 補充說明(Supplement): -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.251.110.174

06/29 15:07, , 1F
只支援 C 的也不會有 class 吧...
06/29 15:07, 1F

06/29 15:07, , 2F
除非你那個"class"裡只有資料沒有函式
06/29 15:07, 2F

06/29 15:08, , 3F
那還能夠當成 struct 來用
06/29 15:08, 3F

06/29 15:08, , 4F
如果是這樣的話你是可以用 malloc 來要空間...
06/29 15:08, 4F

06/29 15:49, , 5F
不支援C++ 當然是整個把C++改寫成C啊....
06/29 15:49, 5F

06/29 16:03, , 6F
不能new 改用 malloc啊!
06/29 16:03, 6F

06/29 16:53, , 7F
麻辣客囉
06/29 16:53, 7F

06/29 16:57, , 8F
malloc 不會呼叫建構式喔 原po的情況感覺是要改寫了
06/29 16:57, 8F

06/29 17:31, , 9F
如果這隻程式用很多class的private和繼承.我會直接辭職
06/29 17:31, 9F

06/29 17:31, , 10F
而不去改寫
06/29 17:31, 10F

06/29 17:33, , 11F
可能多很多headerXDD
06/29 17:33, 11F

06/29 17:49, , 12F
原po是要玩ooc 嗎? http://0rz.tw/2MXR0 經典 !!
06/29 17:49, 12F

06/29 20:55, , 13F
樓上懂得越多,我肚子越痛.怎麼有人懂一堆,這樣老闆會當
06/29 20:55, 13F

06/29 20:55, , 14F
工程師是神阿
06/29 20:55, 14F

06/29 20:58, , 15F
就拆成malloc之後再呼叫一個init function之類的吧@_@"
06/29 20:58, 15F

06/29 21:59, , 16F
推樓上V大,new 識別字在c++是叫「運算子」而非「函式」
06/29 21:59, 16F

06/29 21:59, , 17F
c++可以多載運算子,但c不行,且malloc是函式不是運算子.
06/29 21:59, 17F

06/29 22:49, , 18F
感謝 各位高手阿 看起來真的要改寫@@
06/29 22:49, 18F

06/30 00:55, , 19F
改寫辭呈比較快
06/30 00:55, 19F

06/30 08:24, , 20F
如果只是把new->malloc,delete->free.初始化用memset
06/30 08:24, 20F

06/30 08:26, , 21F
不至於要寫辭呈.但是如果有繼承和private.沒有家庭經濟
06/30 08:26, 21F

06/30 08:26, , 22F
我真的會寫.因為老闆再開玩笑
06/30 08:26, 22F

06/30 09:07, , 23F
推 tropical 大那本,超經典!!!
06/30 09:07, 23F

06/30 09:33, , 24F
...又是番邦文,且221頁
06/30 09:33, 24F

07/01 19:59, , 25F
要C重載運算子 可能需要define XDDD
07/01 19:59, 25F

07/02 08:31, , 26F
可以去參考 GTK+, 裡面有很多很神奇的作法
07/02 08:31, 26F

07/02 08:32, , 27F
不過即使你能全部理解, 要真正實作那些繼承跟轉型用的成
07/02 08:32, 27F

07/02 08:32, , 28F
員和 macro 還是會讓你頭髮掉光...
07/02 08:32, 28F
文章代碼(AID): #1E2itMY1 (C_and_CPP)