C++类访问控制及继承

一、C++类的访问控制有三类:public,protected和private。

类访问控制符类成员可被哪些对象访问
public1、类的成员函数。2、类对象。3、友元。4、子类成员函数
protected1、类的成员函数。2、友元。3、子类成员函数
private1、类的成员函数。2、友元



二、C++类的继承

继承方式也有三种:public,protected和private。

继承之后,基类成员的可访问性会发生变化,如下表:


public继承

基类publicprotectedprivate
子类publicprotected不可见


protected继承

基类publicprotectedprivate
子类protectedprotected不可见


private继承

基类publicprotectedprivate
子类privateprivate不可见

从上面可以看出,经过继承后,基类的成员访问性会发生改变,派生类对其的访问仍然遵从类的访问控制规则。有关三种继承方式,派生类对基类成员的访问说明,网上有很大网友写了大量的文章,不过我觉得文字说明很容易把人绕晕,反而丢掉了其本质。我以为继承没有网友说的那么麻烦,就是基类的可访问性在派生类中发生了改变,然后,派生类再使用类访问控制规则对其进行访问即可。


值得注意的地方有两个:

一、基类中的private成员在派生类中是不可见的,即无法通过派自己的成员函数去访问,但可以通过继承来的成员函数访问。

二、private继承,基类的public和protected成员都成为派生类中的private成员,这样,如果对派生类再派生一个子类,那么,在派生的子类中,将无法直接通过该子类的成员函数访问继承来的成员;



三、派生类从基类中无法继承的是哪些成员

派生类无法从基类中继承的成员有三种:

1、构造函数和析构函数

2、赋值操作符(operator=()member)

3、友元




评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值