为了账号安全,请及时绑定邮箱和手机立即绑定

7分钟左右视频求解

7分钟左右的视频不是很懂啊,如果Infantry能访问类Person的数据成员和成员函数,怎么能说明soldier保护继承的父类的数据成员和成员函数在protected内,如果在public里面Infantry不是更应该能访问到person的数据成员和成员函数吗。求解

正在回答

3 回答

首先,Soldier类保护继承Person类,Infantry公有继承Soldier类。这个时候Soldier的对象不能调用Person类中的work成员函数,说明Person中数据成员和成员函数不在其(Soldier)public下(因为Person中work的访问属性为public,如果是公有继承肯定可以访问)。那就剩下保护继承(私有继承情况更是不能)了。而Infantry是公有继承Soldoer类,如果Infantry中成员可以访问Person中的数据成员和成员函数也就说明了Soldier类中的成员可以访问Person中的数据成员和成员函数,即保护继承。

0 回复 有任何疑惑可以回复我~

我觉得Infantry类是公有(public)继承自soldiler类中那么其就能访问soldier类中的公有(public)成员和受保护(protected)的成员,能掉用Personer类中的公有和受保护的成员(我觉得只能说名他的派生类soldlier继承了(相当与存储了)了基类的公有成员和受保护的成员在 公有或受保护的作用域类,)但应为之前证明了如果其基类的公有成员派生类不能调用,所有排除了,在公有成员的作用域,所以在protected作用域内(soldlier是protected继承person)。

0 回复 有任何疑惑可以回复我~

能调用不就是喽  步兵类能访问person的数据成员和成员函数 不过数据成员不能直接访问

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C++远征之继承篇
  • 参与学习       75188    人
  • 解答问题       251    个

继承,C++面向对象三大特征之一,通过编码实践方式讲解到操作层面

进入课程

7分钟左右视频求解

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号