我想在我的类中覆盖 delete 操作符。这是我正在尝试做的,但不成功。
我遇到了一个错误:
删除void*未定义
class Complex{
void *operator new(size_t s);
void operator delete(void *ptr);
};
void Complex::operator delete(void *ptr){
delete ptr;
}
我遇到了一个错误:
删除void*未定义
::delete ptr;
。 - Mats Peterssonnew
没有size_t
参数(只有new[]
有),但是delete
确实 有一个size_t
参数。 - Anton Kovalenkodelete
操作符,它是一个语言关键字。你所做的是重载operator delete
,它是被delete
操作符调用的函数。这听起来可能像是文字游戏,但这是一个重要的区别。 - Pete Becker