作者INsoarDEEP (我/我/我)
看板EE_DSnP
標題[請益] overload new operator 的回傳型態
時間Thu Nov 19 12:30:15 2009
我們在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)
1F:推 hfslyc:寫成別的會不給你COMPILE... 11/19 14:21
2F:推 averangeall:我想原po的意思是想要問 為什麼不能compile 11/19 18:48
3F:→ averangeall:就是當初設計 C++ 的人為什麼要這樣設計吧 11/19 18:48
4F:推 ric2k1:void* 可以被 cast 成 any pointer, 但是反之不然. 11/20 23:03
5F:→ ric2k1:想想 what happen to inherited class? 11/20 23:04
6F:→ ric2k1: 的 new operator? 11/20 23:04