摘要
C++中类成员和类继承的private、protected和public关键字作用。
类成员中,private、protected和public
类成员变量或函数前加上关键字private、protected和public的含义如下:
public: 表示该成员允许被任意实体访问
protected: 表示该成员只允许被本类和子类的成员访问
private: 表示该成员只允许本类的成员访问
概括如下表所示:
关键字 | 类内访问 | 子类访问 | 类外访问 |
---|---|---|---|
public | √ | √ | √ |
protected | √ | √ | |
private | √ |
注意: 类成员包括类内声明的变量和函数。
类继承时,private、protected和public
派生类继承基类的继承方式有三种:public、protected和private。
在未指定的情况下编译器会默认继承方式为protected或private方式。
不同继承方式下,基类成员
在派生类中的属性将会转换,转换关系概括如下:
基类成员属性 | public继承方式 | protected继承方式 | private继承方式 |
---|---|---|---|
public | public | -> protected | -> private |
protected | protected | protected | -> private |
private | -> 不可访问 | -> 不可访问 | -> 不可访问 |
上表所表达的意思如下:
- public继承方式 ——
class derived : public base
基类中所有public成员在派生类中为public属性;
基类中所有protected成员在派生类中为protected属性;
基类中所有private成员在派生类中不可访问。 - protected继承方式 ——
class derived : protectedbase
基类中的所有public成员在派生类中为protected属性;
基类中的所有protected成员在派生类中为protected属性;
基类中的所有private成员在派生类中仍然不可访问。 - private继承方式 ——
class derived : private base
基类中的所有public成员在派生类中均为private属性;
基类中的所有protected成员在派生类中均为private属性;
基类中的所有private成员在派生类中均不可访问。
相关/参考链接
https://www.cnblogs.com/BeyondAnyTime/archive/2012/05/23/2514964.html
http://www.weixueyuan.net/view/6359.html