C++继承和菱形继承中的虚继承

(1)C++继承概念:

C++继承分为公有继承(public)、私有继承(private)、保护继承(protected)是常用的三种继承方式。在C++语言中,一个派生类可以从一个基类派生,也可以从多个基类派生。从一个基类派生的继承称为单继承;从多个基类派生的继承称为多继承,还有一种结构特殊的菱形继承。

(2)三种继承方式的总结:

1. 公有继承(public)

公有继承的特点是基类的公有成员和保护成员作为派生类的成员时,它们都保持原有的状态,而基类的私有成员仍然是私有的,不能被这个派生类的子类所访问。

2. 保护继承(protected)

保护继承的特点是基类的所有公有成员和保护成员都成为派生类的保护成员,并且只能被它的派生类成员函数友元访问,基类的私有成员仍然是私有的。

 

3. 私有继承(private)

私有继承的特点是基类的公有成员和保护成员都作为派生类的私有成员,并且不能被这个派生类的子类所访问。

 

继承方式总结表格:

(3)继承的定义格式、继承权限和类的访问权限:

 

 

 

 

(4)继承关系中构造函数和析构函数的调用顺序:

 

 

(5)总结:

1、在继承体系中,基类和派生类是两个不同的作用域。

2、子类和父类中有同名成员,子类成员将屏蔽父类对成员的直接访问(在子类函数中可以采用  基类::基类成员 访问)------隐藏------重定义。

3、注意在继承体系中最好不要定义同名的成员。

4、继承与转换------赋值兼容规则------public继承

5、友元与继承

 

6、继承与静态成员

(6)结构特殊的菱形继承:

1、多继承和菱形继承:

2、菱形继承的对象模型:

3、虚继承---解决菱形继承中的二义性问题:

(加关键字virtual)

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值