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

最赞回答 / 慕UI8711183
1、虚函数表不是只存储虚函数的地址吗? 怎莫理解您说的 “类对象的头部即虚函数表所在” 这句话。虚函数表存放的是虚函数的地址,虚函数表指针存放的是虚函数表的首地址,在内存中,子类对象Circle头部(即前四个字节)存放的是虚函数表指针,父类指针p指向子类Circle,也就是说把子类Circle的首地址赋值给p,根据p就可以找到子类Circle的虚函数表指针,依次找到虚函数表,再找到虚函数。2、没有虚函数,就没有虚函数表,子类对象Circle头部(即前四个字节)就没有虚函数表指针,就没法调用子类对象Circ...

最新回答 / Sacrt
是不是要初始化啊,FighterPlane里面好像没有m_strCode的数据成员,在Plane才有。改成“FighterPlane(string code):Plane(code)”试试

最赞回答 / XZMYSTYLE
如果用new的话,下面的catch语句传入的参数要用*代替&,同时catch里面的调用函数的语法也要用->来实现

最新回答 / 慕斯卡2190356
只有函数声明没有函数定义的虚函数是纯虚函数没有问题 这句话意思应该是只有声明且编译通过的虚函数是纯虚函数

已采纳回答 / topband
肯定不是这样的。1、使用virtual会产生一个虚拟指针表,要维持这个表,便额外加大了系统的开销。2、也不是所有的成员函数都需要实现多态的,总有些函数实现的功能意义时固定的,比如说加减乘除3、虚继承无非是为了避免诸如菱形继承的情况,在我们构建类图的时候,就需要考虑到这些问题,如果能不用虚继承,就不用咯。综上,应该是能不用就不用,C++就是以号称节省资源,运行效率高的。如果在写程序的时候,使得消耗过多的系统资源,便失去了这门语言高效的意义了。那还不如直接用一些新兴的语言如GO,SCALA之类的了。

最赞回答 / 计量赵子龙
这个网站的判断系统没有专业的oj那么严谨,你要是想到网上做题,我推荐你一个网站http://acm.hdu.edu.cn/listproblem.php?vol=1

最新回答 / BEauty_CC
虚析构函数是虚函数 会有虚函数列表

最赞回答 / 天高任鸟飞9903
试着回答Rect和Circle都是shape的子类,子类给父类函数成员赋值,要使用参数列表,增加工作量

已采纳回答 / flurry
IndexException() 可以类比new IndexException()实际上前者是抛出一个类,后者是申请一个类。从老师的视频中可以看到,该类是使用默认构造函数,即没有初始化参数。所以IndexException后加(),内无参数,如果有参数,那么()内应该填写相应初始化参数值。

最赞回答 / 小肚腩era
如果父类定义了一个虚函数-calcArea,子类继承,但子类没有去重新定义,那么,就会有2张虚函数表,并且,父类与子类的虚函数表指针地址不同,但都指向同一个函数指针,即父类中的虚函数-calcArea.

最新回答 / qq_渴望六维空间_0
我的正常呀,是不是版本的问题?<...图片...>

最新回答 / 铁战
怎么发到这了
课程须知
本课程是C++初级课程 1、熟练掌握C++语言基础语法
老师告诉你能学到什么?
1、虚函数、虚析构函数、纯虚函数 2、抽象类和接口类 3、运行时类别异常 4、异常处理

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消