【问题标题】:c++ methods in a base class基类中的 c++ 方法
【发布时间】:2010-02-19 03:56:53
【问题描述】:

当基类具有纯虚方法时,这使得该类不能被实例化。如果我在这个基类中有常规方法和属性,派生类是否仍然照常继承它们?

例如属性的 getter 和 setter。

【问题讨论】:

  • 你自己试试看吧?

标签: c++ inheritance


【解决方案1】:

是的,所有方法都是继承的。

【讨论】:

  • 私有方法也被继承——它们是私有的,当然,但朋友们仍然可以看到它们。
  • 即使是私有的,它们仍然被继承——只是它们作为私有方法等被继承,所以它们不能被引用。例如,继承的私有字段仍会占用类实例中的空间,并且仍保留可能影响(非私有)继承方法的结果的值。
  • 私有继承函数可以被基类调用。因此,它们仍然可以用来改变行为。您只是不能在基类之外调用它们。所有私有的、受保护的和公共的都表明谁可以调用这些函数。
  • 谢谢。固定的。出于某种原因,我认为他想知道其他类是否可以访问它。
【解决方案2】:

正如白痴所说,你自己试试吧。但是,要围绕该主题建立更多结构...

有接口继承(我可以在一个对象上调用什么方法?)和实现继承(当我在这个对象上调用这个方法时会调用什么代码?)。纯虚方法提供接口继承,但不提供实现继承。虚拟(但非纯)方法提供了两者,并允许派生类提供不同的实现。非虚拟方法提供了两者,但没有允许派生类提供不同实现的选项。

【讨论】:

    猜你喜欢
    • 2011-10-30
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 2012-11-15
    • 2014-10-17
    • 2016-10-05
    相关资源
    最近更新 更多