首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

operator new和operator delete一问解决思路

2012-02-29 
operator new和operator delete一问effective 8和10款写new和delete两个操作符要同时重载。想了一个问题:如

operator new和operator delete一问
effective 8和10款写new和delete两个操作符要同时重载。

想了一个问题:如果我的类A只同时重载了new和delete如effective的例子
static void * operator new(size_t size);
static void operator delete(void *deadobject, size_t size);

这只对new和delete单个对象有用,对数组是不行的,也就是当我使用new A[10]时,实际没有调用我的重载函数,而是用的::operator new(),delete同。

所以,是否应该是:若要对new、delete进行重载,必须同时实现下面四个方法:
static void * operator new(size_t size);
static void operator delete(void *deadobject, size_t size);
static void * operator new[](size_t size);
static void operator delete[](void *deadobject, size_t size);


[解决办法]
new 和 delete分别有6种形式 需要把这些都重载,或者都声明了,并且实现你需要调用的那个
[解决办法]
如果需要,那一定都要重载

热点排行