gpt4 book ai didi

c++ - 从没有虚方法的基类继承是不好的做法吗?

转载 作者:可可西里 更新时间:2023-11-01 16:02:46 26 4
gpt4 key购买 nike

我曾经读过一个关于 dynamic_cast 问题的答案。 dynamic_cast 无法工作,因为基类没有虚方法。其中一个答案说,从没有虚方法的类派生通常意味着糟糕的设计。这个对吗?即使不利用多态性,我仍然看不出这样做有什么错误。

最佳答案

这取决于我们在谈论什么:

  • 对于 Traits 类(无数据)没问题(想到了 std::unary_function)
  • 对于 private 继承(用于代替组合以从空基优化中受益)也很好

当您开始以多态方式处理此类 Derived 对象时,问题就出现了。如果您达到了这样的位置,那肯定是代码味道

注意:即使上面提到的很好,您仍然提供以多态方式使用该类的能力,因此您将自己暴露在细微的错误中。

关于c++ - 从没有虚方法的基类继承是不好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6997791/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com