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

已采纳回答 / 慕圣2268672
还是用person和soldier打比方,*p=&s是对的,因为士兵肯定是人,但*s=&p编译器就会提示错误,因为人不一定就是士兵,这么说应该好理解吧!

已采纳回答 / pp_pcz
#ifndef 是判断有没有定义后面的那个宏,如果没有就进行后面的宏定义并且定义相应的类或其他,有的话就不进行下面的定义,这样可以避免在多个文件引入头文件时造成的重复定义。

已采纳回答 / 书之诗ae
你的Worker继承的是一个抽象类,继承后就把派生类也变成抽象类了,解决方法:派生类的void Worker::work()改成void Worker::worker();或者把抽象类的Person的virtual void worker()=0改成virtual void work()=0;就可以解决啦。望采纳!

已采纳回答 / 韩尛靖
private:    int m_iAge();你定义的是一个成员函数;调用的时候却当成成员变量使用。应该把那个括号去掉就可以了。 private:    int m_iAge;

已采纳回答 / juhhjj
指针类型和所取的地址储存对象类型要一样,否则指针类型太大指的范围超过了对象的范围,无法确定内容,若太小又取不全

已采纳回答 / qq___思念不破海丶_1
本质上所有的操作系统都是一个死循环,不停的接收以及响应用户的处理和给予反馈真正的问题在于要分析清楚你所需要的所有资源的生命周期,包括内存的申请和释放,外设的创建和销毁等等。只要是你申请的资源,你必须确认他能够及时正确的得到销毁。还有一点是既然死循环必须要考虑何时和怎样释放CPU,例如利用信号量等待将当前任务/进程挂起,或者简单的利用wait/sleep之类函数主动释放。

已采纳回答 / 慕仔5649330
写到基类,只是将直接include iostream 变成通过include 基类头文件间接include iostream,有时这样反而造成更多的空间浪费,比如你有一个.cpp可能只需要用到iostream头文件中的东西,而不需要基类头文件中的东西,你这时候包含基类头文件反而是浪费,所以包含头文件尽量不要传递,即通过include某个头文件而include另一些头文件

已采纳回答 / YX4387299
如果在基类已经有virtual关键字的前提下,派生类需要加virtual关键字才通过的话,很有可能就是编译器的问题了,不同的编译器可兼容和扩展性能不同,就像有些编译器直接main(){}(不用int关键字)都可以编译,建议更新一下IDE试试

已采纳回答 / 范更
因为,内存中有程序代码区,堆区,栈区,全局区(静态区),文字常量区。在定义一个类时,它的成员函数,虚构函数,构造函数就被存入程序代码区,供所有对象调用。在实例化一个类的对象时,并没有拷贝类的函数,仅仅存入了数据成员,因此类的对象中有数据成员,然而当用父类的指针指向子类的对象时,调用同名函数时会调用父类的同名函数,当想要调用子类的同名函数引入了虚函数,当调用普通成员函数时,计算机可以在代码区识别该函数,无需用函数指针,因而,在对象中只有数据成员的大小。

已采纳回答 / 隔壁村的幼稚鬼
父类A既可以用A本身实例化,也可以用子类B来实例化,一种方法,多种表达方式,所以是多态

已采纳回答 / qq_梵蒂冈_1
 基类实例化对象不能赋值给派生类的实例化对象(引用也不可以),只能用派生类的对象去赋值或初始化基类的对象,和用基类的指针指向派生类。如:worker wo;person per;worker &wor=wo;person *p=&wo;*p=wor;per=wor;

已采纳回答 / 慕粉1439171657
如果说是定义普通的虚成员函数,这样是对的;如果是纯虚函数 virtual int text()=0;

已采纳回答 / 维内托
不一样,多态实现是在父类定义一个虚函数,在不同的子类中分别实例化。
课程须知
本课程是C++初级课程 1、熟练掌握C++语言基础语法
老师告诉你能学到什么?
1、虚函数、虚析构函数、纯虚函数 2、抽象类和接口类 3、运行时类别异常 4、异常处理

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消