使用多态性的缺点(技术)

时间:2014-06-07 23:57:27

标签: c++ polymorphism

我知道多态的主要优点是

  1. 它帮助程序员在编写后重用代码和类, 测试和实施。在许多情况下,它们可以重复使用。
  2. 单个变量可用于存储多种数据类型。
  3. 它减少了耦合。
  4. 但是当我搜索它的缺点时,我得到了像

    这样的答案
    1. 这是深奥的。对于初学者来说,不是很容易上手 用它。相反,它往往需要多年的奉献精神 抽象成为第二天性。
    2. 我想知道的是使用多态是否有任何技术缺点?

2 个答案:

答案 0 :(得分:1)

虚方法调用(动态调度)具有轻微的运行时间损失,因为它需要解析在调用时要调用的函数。一般来说,这种性能损失无需担心。但是,几年前我做了一些测试;如果您正在进行大量虚拟呼叫,并且每次都解决了不同的功能,您可能会遇到明显的减速。这是因为它与CPU的分支预测相混淆。

答案 1 :(得分:0)

以下是技术上的弊端。

  • 运行时多态性会在需要决定时产生性能问题 在运行时如果有很多虚拟,它会降低性能 功能。
  • vptr(虚拟指针)的4个字节(实际上可能不同)和查找表的开销。