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

最赞回答 / 慕粉4092444
没有。。。。。Person::soldier.attack()就变成Person这个类里面的soldier.attack()函数了,逻辑上就不对了!

最新回答 / 小仆仆
尽量在类外定义,因为这样方便自己阅读

最赞回答 / 大妮妮1051134
因为migrantworker可以从farmer  和 worker继承,而farmer和worker都是从person继承的,这样migrantworker就含有两个person中的数据,这是不被允许的,所以采用虚继承避免冗余数据。  migrantworker只是包含farmer一次,不存在冗余,所以不需要虚继承

最新回答 / NoBB_
因为它让你用指针(要求:在main函数中通过new实例化ChildLabourer类的对象)

最新回答 / qq_赦_0
应该是你程序其他的地方出错了,这两者都一样,只是一个需要程序员释放内存,一个系统自动释放!请采纳

最赞回答 / include9
课程中是两个中间父类都变成了虚继承。如果想通过子类初始化顶端父类的数据成员,可以只虚继承一个中间父类

最新回答 / 慕圣2268672
老师安装的visual studio 10    旗舰版,只能帮你到这了

最新回答 / 朵小妖儿
 不会的,因为在4.5节中有说到,只有void test1(Person p)这个对象的会先实例化一个对象p,来调用play,并在执行完之后自动销毁,这样就会有一个析构函数,之后的两个都没有实例化和销毁的过程,所以效率高,也不会执行析构函数,但是如果加了虚析构函数,就会把父类和子类的内存一起释放了

最新回答 / Kevin_dgt
已经解决了,使用g++ -std=c++11进行编译就ok了
课程须知
本课程是C++初级课程 熟练掌握C++语言基础语法,如需要学习C++基础语法的可以看《C++远征之起航篇》、《C++远征之离港篇》、《C++远征之封装篇(上)》、《C++远征之封装篇(下)》
老师告诉你能学到什么?
1、什么是继承 2、基类和派生类的概念 3、继承的三种方式 4、多重继承和多继承 5、虚继承是怎么回事

微信扫码,参与3人拼团

微信客服

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

帮助反馈 APP下载

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

公众号

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

友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消