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种形式 需要把这些都重载,或者都声明了,并且实现你需要调用的那个
[解决办法]
如果需要,那一定都要重载