C++ 类成员的访问权限与继承权限

三种访问方式

① public:用该关键字修饰的成员表示公有成员,该成员不仅可以在类内可以被访问,在类外也是可以被访问的,是类对外提供的可访问接口;可以被该类中的函数、子类的函数、其友元函数访问,也可以由该类的对象访问。

② private:用该关键字修饰的成员表示私有成员,该成员仅在类内可以被访问,在类体外是隐藏状态;可以由该类中的函数、其友元函数访问,不能被任何其他访问,该类的对象也不能访问。

③ protected:用该关键字修饰的成员表示保护成员,保护成员在类体外同样是隐藏状态,但是对于该类的派生类来说,相当于公有成员,在派生类中可以被访问。可以被该类中的函数、子类的函数、以及其友元函数访问,但不能被该类的对象访问。

 注:友元函数包括两种:设为友元的全局函数,设为友元类中的成员函数。

 

三种继承方式

① 若继承方式是 public,基类成员在派生类中的访问权限保持不变,也就是说,基类中的成员访问权限,在派生类中仍然保持原来的访问权限;

② 若继承方式是private,基类所有成员在派生类中的访问权限都会变为私有(private)权限;

③ 若继承方式是 protected,基类的共有成员和保护成员在派生类中的访问权限都会变为保护(protected)权限,私有成员在派生类中的访问权限仍然是私有(private)权限。

 A类(基类)B类(A的派生类)C类(B的派生类)
公有继承 公有成员 公有成员 公有成员
私有成员 (无) (无)
保护成员 保护成员 保护成员
私有继承 公有成员 私有成员 (无)
私有成员 (无) (无)
保护成员 私有成员 (无)
保护继承 公有成员 保护成员 保护成员
私有成员 (无) (无)
保护成员 保护成员 保护成员
posted @ 2021-08-30 14:44  默行于世  阅读(360)  评论(0编辑  收藏  举报