继承与派生:派生类对基类成员的访问控制之保护继承与私有继承(转)

本文介绍了保护继承和私有继承的概念。在保护继承中,基类的公有和保护成员在派生类中变为保护成员,而私有成员无法访问。派生类对象不能直接访问基类的保护成员,但派生类的成员函数可以。私有继承则将基类的公有和保护成员变为派生类的私有成员,不仅外部对象,就连派生类对象也无法访问这些成员。文章通过实例解释了这两种继承方式的特点和使用场景。
摘要由CSDN通过智能技术生成

原文地址:http://www.jizhuomi.com/software/98.html

鸡啄米在编程入门系列上一节中讲了公有继承方式的访问属性,这一节接着讲剩下的两种继承方式:保护继承和私有继承。

       一.保护继承

       在保护继承方式中,基类的公有成员和保护成员被派生类继承后变成派生类的保护成员,而基类的私有成员在派生类中不能访问。因为基类的公有成员和保护成员在派生类中都成了保护成员,所以派生类的新增成员可以直接访问基类的公有成员和保护成员,而派生类的对象不能访问它们,上一讲鸡啄米说过,类的对象也是处于类外的,不能访问类的保护成员。对基类的私有成员,派生类的新增成员函数和派生类对象都不能访问。

       通过上述保护继承的讲解,相信大家对类的保护成员的访问属性有 更加深刻的理解了。假设A类是基类,B类是从A类继承的派生类,A类中有保护成员,则对派生类B来说,A类中的保护成员和公有成员的访问权限是一样的。而 对A类的对象的使用者来说,A类中的保护成员和私有成员都一样不能访问。可见类中的保护成员可以被派生类访问,但是不能被类的外部对象(包括该类的对象、 一般函数、其他类等)访问。我们可以利用保护成员的这个特性,在软件开发中充分考虑数据隐藏和共享的结合,很好的实现代码的复用性和扩展性。

       鸡啄米举个简单的例子讨论下保护成员的访问属性。

class Base
{
      protected:
         int x;           // 基类的保护成员
};
int main()
{
      Base base;
      base.x = 0;      // 编译报错
      return 0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值