第四章 继承


 注:对于上图实例,注意Student有name的成员,但不能出现name因为是private,但调用setPerson(pubilc)可以,因为它有name,所以n才有的赋

实例:(public继承)

注:1.反着的

2.对象成员:就是一个数据成员,但是属于类这个类型

实例1:

实例2:

(运行时,先调用基类person构造,同时初始化student,在调用student构造,析构反)

如果将Student和Employee里的name都定义为protected,StudenthaJob里调用

出现歧义,不知从哪条路径来 

 解决:成员名字限定

此时,调用StudenthasJob

——>先调用Student构造,是子类故先Person构造

——>再调用Employee构造,是子类故又Person构造

——>最后StudenthasJob构造

           

(理解:最大父类反复被调用!(存在多个副本),于是virtual 继承,从而只调用一次)                

(理解:虚基类指最大父本,图中是Person,

如果student和employee在继承时采用virtual public,

那么只有在真的创建对象【包括person,student,employee等】时才调用Person构造

初始化列表里的!!!不算!!!,以便只调用一次)

 

前置:        

格外关注基类指针可指向派生类对象,但调用时调用的都是基类里的

如图,调用show时调用的是父类shape的show()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值