【问题标题】:Force overloading of new/delete for inheriting classes为继承类强制重载 new/delete
【发布时间】: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


【解决方案1】:

解决方案是在基类中实现新的操作符 private, 现在,对于从 A 继承且未实现 new/delete 运算符的每个类,我在编译时遇到错误。

【讨论】:

    猜你喜欢
    • 2011-07-03
    • 1970-01-01
    • 1970-01-01
    • 2013-04-18
    • 2011-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-07
    相关资源
    最近更新 更多