【发布时间】:2012-04-03 13:55:13
【问题描述】:
我可以理解,可能有理由将已实现的(与纯的)虚函数声明为私有或受保护的。 Afaik,如果您将实现的虚拟方法声明为受保护,您的子类可以调用基类的方法(而其他人不能)。如果将其声明为私有,则只有基类可以调用虚拟方法的默认实现。
但是,对于纯虚拟,没有基本实现......那么将纯虚拟声明为私有或受保护在功能上不等效吗?受保护的纯虚拟没有意义,因为您永远无法调用基类的相应方法。受保护的纯虚拟是否有任何意义?
关于 SO 有几个类似的主题,但我找不到任何能简明扼要地回答我的问题的内容。
【问题讨论】:
-
你可以为接口实现
friend。 -
纯虚方法可以有主体,可以像base::foo()一样显式调用。
标签: c++ inheritance pure-virtual