继承总结

继承的一般形式:

    class <派生类名>:<派生方式><基类名>

    {

        派生类成员声明;

    }

    其中派生方式为private私有继承、public公有继承、protected保护继承

    访问控制,看如下表:

从上表中可以看出:

1、基类中的私有成员在派生类中是隐藏的,只能在基类内部访问;

2、派生类中的成员不能访问基类中的私有成员,但可以访问基类中的公有成员和保护成员;

3、派生类从基类公有继承时,基类的公有成员和保护成员在派生类中仍为公有成员和保护成员;

4、派生类从基类私有继承时,基类的公有成员和保护成员在派生类中都改变为私有成员;

5、派生类从基类保护继承时,基类的公有成员在派生类中改变为保护成员,基类的保护成员在派生类中则仍为保护成员。

 

一、公有继承。

    1、虽然派生类以公有的方式继承了基类,但并不是说派生类就可以访问基类的私有成员,基类无论怎样被继承,其私有成员对基类而言仍然保持私有性;

    2、在派生类中声明的名字如果与基类中声明的名字相同,则派生类中的名字起支配作用。也就是说,若在派生类的成员函数中直接使用该名字的话,该名字是指在派生类中声明的名字。如果要使用基类中的名字,则在改名字前加“基类名::”。

 

二、私有继承

    基类的公有成员和保护乘员在派生类中成为私有成员,它们能被派生类的成员函数直接访问,但不能被类外函数访问,也不能在类外通过派生类的对象访问。基类的私有成员派生类仍不能被访问。

 

三、保护继承

    1、无论是公有派生还是私有派生,派生类都不能访问它的基类的私有成员,要想访问,只能通过调用基类成员函数的方式,但是对于频繁访问基类私有成员的派生类而言,这种方式不便。

    2、若为公有派生,则基类中的保护成员在派生类中也为保护成员,可被派生类直接访问,但不能被外部函数直接访问,外部函数只能通过派生类的对象间接访问它们

    3、若为私有派生,则基类中的保护成员在派生类中成为私有成员,派生类可以直接访问它们,但外部函数或在类外通过派生类的对象都不能访问它们。

 

    派生类直接访问基类私有成员,必须使用基类的接口,实现的方法如下两种:

    * 在基类的声明中增加保护成员,将基类中提供给派生类访问的私有成员定义为保护成员

    * 将需要访问基类私有成员的派生类成员函数声明为友元。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值