我有这样的一个类,重载了new []和delete[]函数,如下:
class Cpeople
{
public:
Cpeople();
~Cpeople();
//对成员变量的操作函数
//以下对全局的new和delete函数进行重载
void* operator new(size_t);
void operator delete(void*, size_t);
void* operator new[](size_t);
void operator delete[](void*, size_t);
private:
//成员变量
}
下面我对这个类进行调用,
Cpeople *ManyPeople = new CPeople[2000];
if(conditon)
{
///////
}
idelete []ManyPeople;
问题:如果中间的条件语句出现异常,用return 返回了一个值出去,后面的delete就不能调用,
会不会出现内存泄漏?
我在类中重新实现了delete会不会自动调用呢?谢谢