在 C++ 中实现多态性有哪些不同的方法



我知道有几种不同的方法可以在 c++ 中实现多态性。

我知道有3种方法可以做到这一点:

    通过使用
  • 继承(通过使用指向基类的指针)
  • 通过使用虚拟函数
  • 通过使用抽象类

在关于该主题的技术讨论中,我被告知我错过了一些东西,并且被吊了......因此,我在这里问了这个问题。

在 c++ 中是否有另一种方法可以做到这一点,还是我说错了什么?

你的三种方式实际上只是一种:基类是否摘要是一个实现细节;你需要虚拟的函数,可以在派生类中重写。

除此之外:函数重载和模板都提供多态性也是一种形式,尽管它在编译时,而不是运行时。 就此而言,您可以定义头文件中的类,并提供几个不同的它的实现,取决于编译时开关;这也是多态性的一种形式。 (这通常用于系统相关代码。 多态性解析为您正在编译的系统的功能。

我认为您的讨论与不同类型的多态性有关。

  1. 编译时多态性 - 例如:函数重载、运算符重载。
  2. 运行时多态性 - 例如:继承 + 虚函数 + 基类指针。

相关内容

最新更新