我知道你可以重载 operator new
。当你这样做时,你的方法会size_t
默认发送一个参数。但是,是否可以将size_t
参数以及其他用户提供的参数发送到重载的new
运算符方法?
例如
int a = 5;
Monkey* monk = new Monkey(a);
因为我想像这样覆盖 new 运算符
void* Monkey::operator new(size_t size, int a)
{
...
}
谢谢
编辑:这是我想要完成的:
我在应用程序启动时分配了一大块虚拟内存(内存池)。继承我的基类的所有对象都将继承其重载的 new 运算符。我有时想在重载的 new 中传递参数的原因是告诉我的内存管理器我是否想使用内存池,或者我想用 malloc 分配它。