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

最新回答 / Eanve
就是为了防止错误的操作而改变其值

已采纳回答 / 苏布达
父类指针指向子类对象,通过父类指针只能寻址到从父类继承到的成员函数与数据成员,子类扩展的将会被截断。但是,如果将父类中同名函数设置为虚函数,创建子类对象时将会创建子类自有的虚函数表,虚函数表指向的成员函数将覆盖父类中的同名函数。

最新回答 / weixin_慕雪0498266
抽象类包含接口类,区别在于接口类只含有纯虚函数、无其他成员函数、构造函数、析构函数、数据成员;而抽象类在含有纯虚函数以外,可以含有成员函数、数据成员、构造函数、析构函数。

最赞回答 / 大叶_
Coordinate 要放在前面定义,这样shape才能调用定义Coordinate的构造函数要写成Coordinate::Coordinate(int _x, int _y)你的class Coordinate打错了

最新回答 / qq_raining
因为指针在定义的时候就指向了circle的对象,所以指针一直是指向circle对象内存区域的,因而delete的时候会找到circle对象的虚函数表,进行析构。然后父类shape再进行析构。

最新回答 / qq_消遣_3
通过父类指针去指向子类对象,是为了帮助我们理解虚函数和虚析构函数的概念。

最新回答 / 普通人love
“吃葡萄不吐葡萄皮,不吃葡萄倒吐葡萄皮”

最新回答 / qq_枕梦听风忆倾城_0
<...图片...>这个地方可以配置生成的平台,x64下地址是8个字节的,x86是4个字节的

最赞回答 / 慕田峪0215096
dynamic_cast用于判断类型转换是否安全,如果不安全则返回NULL

已采纳回答 / 同手同脚0
不能,通过父类指针指向子类对象时,子类对象中特有的数据成员和成员函数会被截断,无法通过父类指针访问

最赞回答 / 岁月长衣裳薄
因为已经包含了Circle.h和Rect.h,而这两个文件里又都包含了Shape.h注意:因为不能两次包含Shape.h,所以用了#ifndef

已采纳回答 / 易文
因为一个指针就占四个字节啊

最新回答 / 慕虎8274556
throw和catch后面需要接数据类型,并且throw的类型需要和catch数据类型对应。string ()是<string>库中的一个函数,它实现了创建一句字符串的功能。

已采纳回答 / 慕粉4325388
这么说吧,之所以进行这个转换是因为使用父类Flyable指针通过虚函数实现机制我们可以动态的是实现同名的虚函数,但是对于子类Bird中的非虚函数(觅食函数),要想调用则必须是Bird,所以要进行强制类型转换。
课程须知
本课程是C++初级课程 1、熟练掌握C++语言基础语法
老师告诉你能学到什么?
1、虚函数、虚析构函数、纯虚函数 2、抽象类和接口类 3、运行时类别异常 4、异常处理

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消