c++访问权限的控制

来源:互联网 发布:java 获取spring bean 编辑:程序博客网 时间:2024/05/29 10:54

不同继承方式的影响主要体现在:

1、派生类成员对基类成员的访问控制。

2、派生类对象对基类成员的访问控制。

三种继承方式:

1、公有继承(public)

① 基类的publicprotected成员的访问属性在派生类中保持不变,但基类的private成员不可访问

② 派生类中的成员函数可以直接访问基类中的public和protected成员,但不能访问基类的private成员。

③ 通过派生类的对象只能访问基类的public成员。

 对于该类本身,public成员 可以被该类中的函数、子类的函数、其友元函数访问,也可以由该类的对象访问。

2、私有继承(private)

① 基类的publicprotected成员都以private身份出现在派生类中,但基类的private成员不可访问。

② 派生类中的成员函数可以直接访问基类中的public和protected成员,但不能访问基类的private成员。

③ 通过派生类的对象不能访问基类中的任何成员。

 对于该类本身,private成员 只能由该类中的函数、其友元函数访问,不能被任何其他访问,该类的对象也不能访问。

3、保护继承(protected)

① 基类的publicprotected成员都以protected身份出现在派生类中,但基类的private成员不可访问

② 派生类中的成员函数可以直接访问基类中的public和protected成员,但不能访问基类的private成员。

③ 通过派生类的对象不能访问基类中的任何成员。

对于该类本身,protected成员 可以被该类中的函数、子类的函数、以及其友元函数访问,但不能被该类的对象访问 。

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