为了账号安全,请及时绑定邮箱和手机立即绑定
视频真的是太棒了,感谢老师,感谢imooc
早绑定跟晚绑定,一个是静态多态,一个是动态多态。

已采纳回答 / 太阳雨下
不一定,如果是private权限的,就不会,其它情况会,这样就算不是虚函数也是一样的。子类继承父类,在创建类的时候就会有一个虚函数表的概念,如果子类没重写同名函数,子类的虚函数表关于该函数的入口地址就会指向父类的该函数的代码入口地址

已采纳回答 / 太阳雨下
先说个函数指针的概念,每个类(除了空类,就是没有方法也没有属性的类)在创建的时候,就会生成一个虚函数表指针,这个指针与普通的指针一样,存的是函数的入口地址,这是在类生成的时候就建立的。下来说几种情况:父类实现了非virtual修饰的方法一,子类继承父类,子类没有再实现方法一,这样父类与子类的关于方法一在各自虚函数表中的地址是一样的,也就是子类可以直接用父类的方法,而不用再去实现;父类实现了非virtual修饰的方法一,子类继承父类,子类重写了方法一,这样子类的虚函数表的方法一的地址与父类的虚函数表的方法一...

已采纳回答 / 逍遥子_1
纯虚函数的存在就是为了配合多态,实现统一的接口。
子类未定义父类中的虚函数时,此时的之类虚函数表中的指针指向父类的的虚函数
因而两张虚函数表中的函数指针可以指向同一个函数。?

最赞回答 / Julia1yang
class Bus :public Movable 打错了、、、
老师举的这个例子真棒艾~

最新回答 / Uestc_L
归结来说就是这个指针是父类类型的指针,调用的时候就是父类的成员函数

已采纳回答 / onemoo
哦,Flyable这是个纯虚的基类,这种类是不能实例化的,只能通过此种类型的指针来访问派生类。在调用函数时,函数的参数会被构造出来,所以参数也不能直接声明为这种类型,声明成指针就没问题。
请大家记得在头文件加#include<typeinfo>,不然typeid无法使用,程序无法编译的
留给子类实现
课程须知
本课程是C++初级课程 1、熟练掌握C++语言基础语法
老师告诉你能学到什么?
1、虚函数、虚析构函数、纯虚函数 2、抽象类和接口类 3、运行时类别异常 4、异常处理

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消