您当前的位置:首页 > 计算机 > 编程开发 > VC/VC++

C++ private和protected派生(私有和保护派生)

时间:03-07来源:作者:点击数:

除了公有派生(继承),C++ 还支持私有派生(继承)和保护派生(继承)。具体写法是在派生类定义的“继承方式说明符”位置写 private 或 protected。例如:

class B:private A{ };  //私有派生
class C:protected A{ };  //保护派生

不同派生方式会导致基类的成员在派生类中的可访问范围属性不同,如表 1 所示。 

表1:不同派生方式下基类成员在派生类中的可访问范围属性
基类成员 派生方式
公有派生 私有派生 保护派生
私有成员 不可访问 不可访问 不可访问
保护成员 保护 私有 保护
公有成员 公有 .私有 保护

举一个例子说明该表的解读方法:第四行第三列说明,基类的公有成员经过私有派生后,在派生类中变为私有成员。其他情况以此类推。

类的“不可访问”成员指的是类的成员函数内部也不能访问的成员。例如,基类的私有成员在派生类的成阜函数内就不能访问,但它依然是派生类的成员,因此说基类的私有成员在派生类中成为不可访问成员。

假设基类 A 私有派生出类 B,类 B 又派生出类 C。依据上表,经过私有派生后,类 A 的公有成员 x 在类 B 中成为私有成员,于是在类 C 的成员函数中就不能访问 x 了,因为在派生类的成员函数中不能访问基类的私有成员。

一般情况下都应使用公有派生。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门