重写类运算符new并在不更改类的情况下删除
Overriding class operator new and delete without changing the class
我想为某个类重写operator new
和delete
,但我不想修改类本身。有办法做到这一点吗?
基本上,我不能修改类声明,所以以下方法不起作用:
struct C {
operator new (size_t) { ... }
};
我不想修改全局的,因为全局operator new
没有类型信息。
有办法解决我的问题吗?
编辑:KerrekSB在这里提出了一个有效的观点。我会重新考虑我的要求。
我能想到的最好的近似是有一个从你不想修改的类继承的类,并在子类中覆盖new和delete。不过,还不清楚这能解决你的问题。
相关文章:
- 如何在不强制转换每个参数的情况下删除初始值设定项列表中从 int 到 char 的缩小转换?
- 类(可能是代理)的命名,允许在不修改基础容器的情况下对项目进行排序和删除
- 在这种情况下,我必须删除内存吗?
- 在不使用任何 STL 容器的情况下删除重复项
- 为什么在某些情况下从函数返回类型中删除 cv 限定符?
- 如何在不使用 vector::erase() 的情况下编写自定义 Vector 方法来删除元素?
- 在这种情况下,删除指针数组期间会发生什么?
- 如何在自定义删除器的情况下复制unique_ptr
- 是否有任何情况下,具有已删除CTOR的课程可能有用
- 如何在不泄漏内存的情况下删除链接列表
- 如何在不使用循环或迭代器的情况下检查所有列表元素并在满足条件时删除一个
- 如何在给定迭代器列表的情况下从向量中删除元素
- 在特殊情况下使析构函数不是虚拟的,并删除基指针是否安全
- 在特定情况下,指针删除和铸造之间的关系不清楚
- 如何在不使用System()的情况下使用C 删除除最后10个文件外的所有文件
- 使用QT,如何在不读取整个文件的情况下删除文本文件中的第一行
- C++ 如何在不丢失内存的情况下删除节点
- 在这种情况下,我如何使用CRTP删除虚拟方法
- 如何在不删除任何字符的情况下将字符从字符串中的某个位置移动到其最前面
- 如何在没有递归的情况下删除链接列表