【问题标题】:Does C++ have interface class concept and if it is there then how it differ from java interface class? [closed]C++ 是否有接口类的概念,如果有,那么它与 java 接口类有何不同? [关闭]
【发布时间】:2018-09-07 20:12:20
【问题描述】:

在一些设计模式中,建议编写一个接口类,示例是用Java给出的。如何用 C++ 编写接口类?

【问题讨论】:

    标签: java c++ class interface


    【解决方案1】:

    这是一个非常广泛的问题。 C++ 中只有类,这取决于你给它们的方法,它们是否是抽象的。

    在 C++ 中最适合 Java 接口的是一个没有数据成员且只有公共纯虚方法的类,这意味着在其声明的末尾有一个 = 0

    当一个类不能被实例化时,它就是抽象的。当一个类至少有一个纯虚函数时,它不能被实例化。因此,根据前面的定义,接口是 C++ 中抽象类的特例。

    C++ 类可以从任意数量的基类派生,但就像在 Java 中一样,C++ 程序员通常仅从一个基类派生,该基类实际上具有其方法的实现。 (请注意,纯虚函数可能具有在源文件中的类之外定义的实现,但这是一种不常见的边缘情况。)

    【讨论】:

      【解决方案2】:

      c++没有接口,java没有多重继承。

      【讨论】:

      • 从 java 8 开始就可以了
      • @RayTayek 什么???没有。
      • @RayTayek 如果您的意思是默认方法,那么不,这不是多重继承。
      • @Oleg 好吧,那就点赞
      • @HéctorManuelMartinezDurán 谢谢,不是应得的。我对这里的讨论感到恼火:meta.stackoverflow.com/a/365208/1398418 所以我有点拖钓。
      猜你喜欢
      • 1970-01-01
      • 2014-04-03
      • 2012-05-25
      • 1970-01-01
      • 1970-01-01
      • 2016-08-30
      • 1970-01-01
      • 2011-04-12
      • 2023-02-04
      相关资源
      最近更新 更多