重写类运算符new并在不更改类的情况下删除

Overriding class operator new and delete without changing the class

本文关键字:删除 情况下 运算符 new 重写      更新时间:2023-10-16

我想为某个类重写operator newdelete,但我不想修改类本身。有办法做到这一点吗?

基本上,我不能修改类声明,所以以下方法不起作用:

struct C {
  operator new (size_t) { ... }
};

我不想修改全局的,因为全局operator new没有类型信息。

有办法解决我的问题吗?

编辑:KerrekSB在这里提出了一个有效的观点。我会重新考虑我的要求。

我能想到的最好的近似是有一个从你不想修改的类继承的类,并在子类中覆盖new和delete。不过,还不清楚这能解决你的问题。

相关文章: