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

最新回答 / 流岸枫火
并不是那个原因,你把代码放到vs里调试调试就知道了

最新回答 / 慕粉3456311
这是逻辑上的包含,不是数学上的包含,子类是基类的一种,而不是基类的一部分

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

最赞回答 / 慕粉3226999
只有在出现隐藏现象,即子类与父类中有同名方法时,才使用::形式表示是父类的方法还是子类的方法,本例中的printColor方法并没有出现隐藏现象

最赞回答 / 慕容5123895
构造函数里无参,或者有参数且参数都有默认值叫构造函数吧。那么你People(string color)就不叫默认构造函数啦,所以就没啦。

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

已采纳回答 / 慕粉3348155
1楼正解,具体就是virtual public Person这没有public

已采纳回答 / stevewolff
上面的是构造函数的默认参数。创建对象的时候,如果不传参(zhang,20),就默认使用zhangheng,19。默认参数可以不写的

最新回答 / soulhutter
<...code...>嗯, 这里老师讲的多继承是书上写的多重继承,然后书上只有多重继承而没有多继承。  总之也就是名字不一样罢了,咱们按书上的记吧  ,毕竟考试按书上的来,这样就好

最新回答 / 慕前端8376903
#include <iostream>#include <cstring>using namespace std;int main(){    int n;    cin>>n;    int a[10000],b[10000];    memset(b,0,sizeof(b));    for(int i=0 ;i<n;i++)    {        cin>>a[i];        b[a[i]]++;//b数组来记录对应数字出现的次数,这种方...

已采纳回答 / yuchuan
确实含有所有数据成员。只是A类的私有成员在B类中成为不可访问的数据成员。

最赞回答 / fanfan598
基础:    任何类的protected和pravite成员都只能通过该类的成员函数访问,不同通过该类实例化的对象进行访问。public继承下:    基类中的protected成员对应到子类的protected成员,对于子类的protected成员,只能通过子类自己的成员函数访问,而不能通过子类实例化的对象访问。

已采纳回答 / Nero_Leo
子类的构造函数会先调用父类的构造函数然后在执行自己构造函数里的代码
课程须知
本课程是C++初级课程 熟练掌握C++语言基础语法,如需要学习C++基础语法的可以看《C++远征之起航篇》、《C++远征之离港篇》、《C++远征之封装篇(上)》、《C++远征之封装篇(下)》
老师告诉你能学到什么?
1、什么是继承 2、基类和派生类的概念 3、继承的三种方式 4、多重继承和多继承 5、虚继承是怎么回事

微信扫码,参与3人拼团

微信客服

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

帮助反馈 APP下载

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

公众号

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

友情提示:

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消