假设我有一个A类,我在课堂上重载了new。
class A{
public:
A();
void *operator new(size_t size);
void operator delete(void *p);
}
我如何在A类中使用这个重载的operator new而不是全局new? 例如
A::A(){
...
int *temp = new int[10]; //Use overloaded new and not global new
}
我环顾四周,我认为我没有看到一个解决这个问题的问题。
谢谢!
答案 0 :(得分:5)
该重载版本将用于创建class A
及其后代的对象 - 例如,当您的代码中有new A()
时。除非您重载new A[]
,否则不会调用operator new[]()
。
为了在执行operator new[]()
时使用new int[]
功能,您必须替换全局operator new()[]
功能。