看板 EE_DSnP 關於我們 聯絡資訊
我們在class memTestObj裡面overload new, new[] 的回傳型態都是void pointer, 想要請教一下為什麼要用void pointer呢?因為不管是memTest操作的_objList,_arrList 還是memMgr的getMem function操作的都是memTestObj pointer,突然看到new回傳的是 void* 覺得有點疑惑..... 所以想要問一下,如果直接把new的回傳型態寫成memTestObj* 這樣可行嗎? 還有雖然我不知道,但是根據之前的經驗reference code的寫法通常都有它的道理,所以 回傳型態寫成void*應該是有一些特別的優點吧? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.216.45 ※ 編輯: INsoarDEEP 來自: 140.112.216.45 (11/19 12:31)
hfslyc:寫成別的會不給你COMPILE... 11/19 14:21
averangeall:我想原po的意思是想要問 為什麼不能compile 11/19 18:48
averangeall:就是當初設計 C++ 的人為什麼要這樣設計吧 11/19 18:48
ric2k1:void* 可以被 cast 成 any pointer, 但是反之不然. 11/20 23:03
ric2k1:想想 what happen to inherited class? 11/20 23:04
ric2k1: 的 new operator? 11/20 23:04