我可以在 MyClass 的头文件中声明如下:
void* operator new(size_t size) throw(bad_alloc);
并在 MyClass 源文件中定义:
void* MyClass::operator new(size_t size) throw(bad_alloc)
{
cout << "overloading new" << endl;
return (::operator new(size));
}
并使用它:
MyClass *m = new MyClass();
所以我的问题是 - 在上面的代码行中我们使用重载的 new 运算符 - 我看不到我们将 size_t 类型的 size 参数传递给重载的 new 运算符?然而在重载 new 运算符的定义中它需要它吗?