首页 > 解决方案 > C++:实现公共接口函数,作为私有

问题描述

我想了解为什么我能够在接口类中声明一个纯虚拟方法,但是在实现它时,我可以将其设为私有并且编译器不会尖叫。

class I_A {
public:
   void A1 () = 0;
}

class A : public I_A {
private:
    A1();
}

我什至可以添加“覆盖”关键字来明确表明我正在覆盖这个方法,并且仍然是一个成功的构建。

一个相关的问题应该是 - 在抽象类中定义私有方法没有任何好处。但是,仍然有可能。做什么的?最后,方法(私有/公共)的可见性不是应该传递给其继任者的属性的一部分吗?

标签: c++inheritanceabstract-classvirtual-inheritance

解决方案


推荐阅读