我有一个小小的疑问。我不知道我的问题是否有效,但我把它放在 SO 中。第一个问题:当我们在全局或类级别重载 operator new 和 operator delete(不适用于数组)时,然后如果我们创建一个对象数组,如下所示:
A* obj = new A[10];
delete []obj;
那么在这种情况下为什么它调用运算符 new 和 delete 即使我没有为数组重载,即我没有像下面那样重载
void* operator new[](size_t size){}
第二个问题:但是如果我像上面那样为数组重载 new 和 delete 运算符,那么它将调用具有数组语法的那个。
最后但并非最不重要的一点是,如果我根本不重载 new 和 delete 运算符,那么当我创建对象数组时将调用哪个运算符。它是一种数组语法还是普通的一种。如果我的问题不清楚,请告诉我。