【问题标题】:class with both abstract and virtual methods具有抽象和虚拟方法的类
【发布时间】:2011-10-12 16:24:20
【问题描述】:

我可以编写一个具有虚拟方法(可以被覆盖但具有默认行为)和抽象方法(必须被覆盖)的类

我可以有一个定义来定义虚拟的实现而不是抽象的实现吗?

另外,我可以创建在非抽象/纯虚拟类中没有实现的抽象方法吗?

【问题讨论】:

    标签: c++ polymorphism


    【解决方案1】:

    我可以编写一个具有虚拟方法(可以被覆盖但具有默认行为)和抽象方法(必须被覆盖)的类

    是的。

    我可以有一个定义来定义虚拟的实现而不是抽象的实现吗?

    是的。

    另外,我可以创建在非抽象/纯虚拟类中没有实现的抽象方法吗?

    没有。纯虚拟成员的存在禁止您创建类实例,即使类抽象。

    【讨论】:

      【解决方案2】:

      有些虚方法可以有合理的默认实现,而其他纯虚方法必须在派生类中实现。

      【讨论】:

        【解决方案3】:

        是的,你可以。如果你的类有一个纯虚方法,那么类将是抽象的并且不能被实例化,但你可以实现所有其余的方法(虚或其他)并且继承类将能够访问它们。

        【讨论】:

          猜你喜欢
          • 2011-10-25
          • 2016-12-14
          • 2010-10-11
          • 2014-08-16
          • 1970-01-01
          • 2011-07-18
          • 1970-01-01
          • 2019-01-01
          • 2010-12-23
          相关资源
          最近更新 更多