C++中类成员和类继承的private、protected和public关键字作用

摘要

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 -> 不可访问 -> 不可访问 -> 不可访问

上表所表达的意思如下:

  1. public继承方式 —— class derived : public base
    基类中所有public成员在派生类中为public属性;
    基类中所有protected成员在派生类中为protected属性;
    基类中所有private成员在派生类中不可访问。
  2. protected继承方式 —— class derived : protectedbase
    基类中的所有public成员在派生类中为protected属性;
    基类中的所有protected成员在派生类中为protected属性;
    基类中的所有private成员在派生类中仍然不可访问。
  3. 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

你可能感兴趣的:(Cpp,Learning,private,protected,类继承,public)