【发布时间】:2015-11-22 12:56:31
【问题描述】:
我面临着很大的挑战(也许只是为了我)。
我有几个类继承自某个基类 A。 所有这些类都应该重载 new 和 delete 运算符。 目前,我在类 A 中重载了 new/delete 以返回错误消息,但我希望能够在编译时而不是在运行时识别这些情况,因为有很多继承类并且很难跟踪他们。
任何想法如何强制从类 A 继承的那些类重载新/删除运算符?或任何其他解决方案?
谢谢。
【问题讨论】:
-
将它们设为私有对我有什么帮助?如果有人不实施它们,它会起作用,我错了吗?而且我不确定什么是删除,如果你的意思是“=删除”,它是一个 C++11 功能,即使它可能是一个解决方案,我也无法使用它
-
请注意,篡改分配函数通常是错误的方法。它不会阻止任何人制作
std::vector<Foo>。 -
啊,没关系。我误解了。 (答案是你不能。)
-
在我们的例子中,我们希望获得更好的分配和释放性能,所以这是必要的。
-
太可惜了!谢谢
标签: c++ inheritance operator-overloading new-operator delete-operator