C++类访问控制与派生
2014-07-27 19:31
134 查看
一、C++类的访问控制有三类:public,protected和private。
二、C++类的继承
继承方式也有三种:public,protected和private。
继承之后,基类成员的可访问性会发生变化,如下表:
public继承
protected继承
private继承
从上面可以看出,经过继承后,基类的成员访问性会发生改变,派生类对其的访问仍然遵从类的访问控制规则。有关三种继承方式,派生类对基类成员的访问说明,网上有很大网友写了大量的文章,不过我觉得文字说明很容易把人绕晕,反而丢掉了其本质。我以为继承没有网友说的那么麻烦,就是基类的可访问性在派生类中发生了改变,然后,派生类再使用类访问控制规则对其进行访问即可。
值得注意的地方有两个:
一、基类中的private成员在派生类中是不可见的,即无法通过派自己的成员函数去访问,但可以通过继承来的成员函数访问。
二、private继承,基类的public和protected成员都成为派生类中的private成员,这样,如果对派生类再派生一个子类,那么,在派生的子类中,将无法直接通过该子类的成员函数访问继承来的成员;
三、派生类从基类中无法继承的是哪些成员
派生类无法从基类中继承的成员有三种:
1、构造函数和析构函数
2、赋值操作符(operator=()member)
3、友元
类访问控制符 | 类成员可被哪些对象访问 |
public | 1、类的成员函数。2、类对象。3、友元。4、子类成员函数 |
protected | 1、类的成员函数。2、友元。3、子类成员函数 |
private | 1、类的成员函数。2、友元 |
继承方式也有三种:public,protected和private。
继承之后,基类成员的可访问性会发生变化,如下表:
public继承
基类 | public | protected | private |
子类 | public | protected | 不可见 |
基类 | public | protected | private |
子类 | protected | protected | 不可见 |
基类 | public | protected | private |
子类 | private | private | 不可见 |
值得注意的地方有两个:
一、基类中的private成员在派生类中是不可见的,即无法通过派自己的成员函数去访问,但可以通过继承来的成员函数访问。
二、private继承,基类的public和protected成员都成为派生类中的private成员,这样,如果对派生类再派生一个子类,那么,在派生的子类中,将无法直接通过该子类的成员函数访问继承来的成员;
三、派生类从基类中无法继承的是哪些成员
派生类无法从基类中继承的成员有三种:
1、构造函数和析构函数
2、赋值操作符(operator=()member)
3、友元
相关文章推荐
- C++类的继承和派生,访问控制
- 浅谈c++类成员的三种访问控制方式和类继承派生时的三种继承方式
- c++类成员的访问控制
- C++类中的访问控制
- C++编程入门系列之三十七(继承与派生:派生类对基类成员的访问控制之公有继承)
- C++类的继承与多重继承的访问控制
- C++编程入门系列之三十八(继承与派生:派生类对基类成员的访问控制之保护继承与私有继承)
- 三十七、继承与派生:派生类对基类成员的访问控制之公有继承
- C++类的继承与多重继承的访问控制
- C++小知识:C++类中成员的访问控制属性有哪些类型,什么区别
- C++类访问控制(public/protected/private)
- C++类访问控制及继承
- C++类的访问控制
- C++派生访问控制说明符
- 三十八、继承与派生:派生类对基类成员的访问控制之保护继承与私有继承
- C++类成员的访问控制
- C++类的继承与多重继承的访问控制
- 继承与派生:派生类对基类成员的访问控制之公有继承
- 鸡啄米:C++编程入门系列之三十七(继承与派生:派生类对基类成员的访问控制之公有继承)
- 继承与派生:派生类对基类成员的访问控制之保护继承与私有继承