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

最赞回答 / pand0rao
不同继承方式的影响主要体现在:1、派生类成员对基类成员的访问控制。2、派生类对象对基类成员的访问控制。三种继承方式:1、公有继承(public)① 基类的public和protected成员的访问属性在派生类中保持不变,但基类的private成员不可访问。② 派生类中的成员函数可以直接访问基类中的public和protected成员,但不能访问基类的private成员。③ 通过派生类的对象只能访问基类的public成员。2、私有继承(private)① 基类的public和protected成员都以pri...

已采纳回答 / AlexPan0610
编译器给出的提示是ChildLabourer类没有m_strName和m_iAge成员变量。推测是子类的初始化列表先于父类的构造函数执行,否则无法将参数传递给父类。因此在执行ChildLabourer的初始化列表时,父类(Worker, Children)的构造方法尚未执行,当然成员变量(m_strName, m_iAge)也就不存在,因此不能在子类的初始化列表中初始化父类的成员变量。

最新回答 / qq_慕姐3148666
最好把代码贴上来,这样比较好分析是不是关键字错了呢

最赞回答 / 莫渡
这是因为Worker和Children类中都有从person类继承的eat,ChildLabourer不知道自己调用的是哪个父类的eat函数。要解决这个问题,就要用到虚继承,就是把class Worker : public Person和class Children : public Person改成class Worker : virtual public Person和class Children : virtual public Person。具体你可以看这一章的课程。
继承时要加访问限定符,不要忘了。
https://blog.csdn.net/zaishuiyifangxym/column/info/35697 这是我整理的笔记
老师说的很好,赞赞赞https://blog.csdn.net/zaishuiyifangxym/article/details/88680380这是我做的笔记 和源代码 互相学习 共同进步

最新回答 / 看见看见看见
存在即有道理,等知识面上升到那个层面,自然就用得到,记住就好

已采纳回答 / 慕粉3959859
指针不是形参,而是一个内存,指向对象第一个成员的地址。

最赞回答 / qq_慕仔4162485
这种调用是在父类person和子类soldier中含有同名成员函数或者数据成员时用来区分的。如果直接写soldier.work()调用的是soldier中的work函数,而从父类继承来的work函数会被隐藏。若想调用父类继承来的work函数,在调用时要加上父类名Person
ChildLabourer*p=new ChildLabourer("jack",15);

已采纳回答 / 慕尼黑0382964
堆中实例化在main()函数结束前就已经释放内存了(delete p)栈中实例化是在程序运行结束后才释放内存

最新回答 / 1234AWD
双引号之间是空格吧,还有就是不能直接写m_strName吧
课程须知
本课程是C++初级课程 熟练掌握C++语言基础语法,如需要学习C++基础语法的可以看《C++远征之起航篇》、《C++远征之离港篇》、《C++远征之封装篇(上)》、《C++远征之封装篇(下)》
老师告诉你能学到什么?
1、什么是继承 2、基类和派生类的概念 3、继承的三种方式 4、多重继承和多继承 5、虚继承是怎么回事

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消