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

6

9

最赞回答 / Sorenly
上面同学也说了,但我猜测,为什么不能传递呢,是由于虚继承的时候,为了避免多次出现Person的定义以及成员的传递,它干脆强制将顶层父类的成员以影印的方式传递一份下来,这样子就能避免你往顶层父类传递参数的时候,再次往下传到子类时出现重复。例如你图片中的情况,实际上就有两个顶层父类传下来的color,如果不禁止你往回传递参数的话,无法将 只需要一份的color成员 传递参数值的‘权利’给Worker或Farmer,这时如果都有权利望顶层父类Person传递color的话,势必会导致MigrantWorker有...

最赞回答 / 慕粉3226999
只有在出现隐藏现象,即子类与父类中有同名方法时,才使用::形式表示是父类的方法还是子类的方法,本例中的printColor方法并没有出现隐藏现象
穿着高腰裤去沙滩 眼镜还丢了?
没必要那么抠字眼吧,老师说是按初始化列表的顺序执行父类的构造函数的,并且还用鼠标画了出来,有错吗?难懂你写代码时声明是一种顺序,定义又是另一种顺序?要是不信,自己动手敲一下不就知道了

最赞回答 / 慕容5123895
构造函数里无参,或者有参数且参数都有默认值叫构造函数吧。那么你People(string color)就不叫默认构造函数啦,所以就没啦。
9:35讲错了,soldier对象不能“直接”访问person对象的成员,以为已经进行了private方式的继承。老师没说:不能“直接”
其实讲的不怎么样,不过国内的教学都是这样。很细致的告诉你怎么做怎么做,但却不讲我们在做什么,为什么这么做。
完成留名。
完成留名.

最新回答 / 慕九州2325515
你是不是之定义了指针没有实例化对象比如:Person *p;  之后直接用p->

已采纳回答 / 慕粉3348155
1楼正解,具体就是virtual public Person这没有public
课程须知
本课程是C++初级课程 熟练掌握C++语言基础语法,如需要学习C++基础语法的可以看《C++远征之起航篇》、《C++远征之离港篇》、《C++远征之封装篇(上)》、《C++远征之封装篇(下)》
老师告诉你能学到什么?
1、什么是继承 2、基类和派生类的概念 3、继承的三种方式 4、多重继承和多继承 5、虚继承是怎么回事

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消