我试图实现这个:
namespace Test
{
void* operator new(size_t s)
{
return malloc(s);
}
}
Run Code Online (Sandbox Code Playgroud)
但是g ++(4.3.1)说:
void* Test::operator new(size_t)’ may not be declared within a namespace
Run Code Online (Sandbox Code Playgroud)
难道我做错了什么?
如果是的话,是否还有重载操作符new以在我的类中使用?我不想创建一个基类,并让我的所有类继承自这样的基类.
您只能(重新)定义operator new为全局命名空间的成员或类的(隐式静态)成员.
如果您没有公共基类,则需要operator new为每个要为其专门实现的类定义.当然,您可以委托一个共同的全球职能部门.
| 归档时间: |
|
| 查看次数: |
1052 次 |
| 最近记录: |