我在查看http://www.geeksforgeeks.org/inheritance-in-c/中的继承概念。我对作者写的几句话很困惑。在一个地方作者说
如果我们从公共基类派生一个子类。然后公众 基类的成员将在派生类中公开.......
这意味着我们在C ++中有类似公共类的东西吗?文章下面的表格也表明有一个公共/受保护类的概念。
我查看了其他一些SO帖子(Use of "Public" in a derived class declaration?),但未发现对Public,Private或受保护类本身的引用。帖子https://stackoverflow.com/questions/4792614/making-classes-public-to-other-classes-in-c是公开的,但是通过头文件。
答案 0 :(得分:6)
Public
,Protected
和Private
关键字是C++
中的可见性标签。 public
中没有protected
,private
和c++
类类型(如Java
)。这三个关键字也用于完全不同的上下文中,以指定可见性继承模型。
下面给出的表列出了组件声明和继承模型的所有可能组合,它们表示在完全定义子类时对组件的结果访问。
它以下列方式读取(看一下第一行):
如果组件声明为public且其类继承为 公开所产生的访问权限是公开的。
看一下下面的例子:
class Super {
private: int x;
protected: int y;
public: int z;
};
class Sub : protected Super {};
对类Sub中的变量y,z的结果访问受到保护,对于变量x则为无。
注意:强>
缺少修饰符会产生private
。