作者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