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

最赞回答 / 慕UI0316525
Person p1 = s1; 这行不会调用Person的构造函数,只会调用Person的拷贝构造函数。

最新回答 / 慕粉2248089209
这里面的虚函数都是采用的虚函数列表来进行的,如果是纯虚函数的话,该表指向一个不存在的函数,所以实例化被禁止。简单来说,就是 如果基类中含有纯虚函数,都不能实例化,在继承了该基类中的派生类中,如果不对该函数进行改写,也不能实例化。

最赞回答 / chen_l
举个例子:假设不使用多态,一个代码框架写好了,功能是:一个计算图形Shape的面积.假设我们最开始只有矩形,那么我们在需要计算圆形的面积的时候需要修改框架内的代码.如果我们使用了多态,那么只需要让圆形继承Shape, 只需要新增圆形计算面积的代码,不需要修改核心代码.这样逻辑更清晰,更安全.在成千上万甚至几十万代码的项目中,这个就非常有用了.

最新回答 / 青鲤
符号(变量)记录了地址,类型决定了它会被怎么解析,在C++里定义一个变量也要声明类型的。虽然这是一个子类对象的内存块,但是它用父类指针去解释这堆内存是什么(这是合法的),调用这个函数的时候是用父类定义的函数.virtual关键字则声明调用这个函数的时候要绕一下(具体实现是用虚函数表实现)。不用virtual声明:调用就直接找到函数的地址(编译的时候就确定了)用virtual声明:调用的时候去找虚函数表,通过虚函数表找函数的地址。c++语法复杂就是因为给人提供了多种选择。看应用场景.

最新回答 / 丫大哥哥
定义纯虚函数的初衷就是为了提供一个函数模板,用来给子类继承用的,让子类去补充父类未写出的定义,自然父类的纯虚函数是一定的。

最新回答 / MT灬柴郡
析构函数的作用是释放内存,没有析构函数不代表不调用,如果不调用就会发生内存泄漏

最新回答 / 慕后端8647280
总结虚函数 纯虚函数虚函数指在函数声音时加上关键字virtual, 目的是为了给子类对象复写或者调用,从而实现多态;纯虚函数通常在接口类中定义, 只有声明,没有实现,并且给它赋值为0.这种函数在被子类继承时需要实现该方法,不能直接调用。

最新回答 / weixin_慕UI0048803
建议提问的时候把代码补全,或者截图,回答问题界面是没有你问题的详细描述的 视频中此处只是为了获得shape对象的地址,所有需要有(int *)强制类型转换(目的是得到对象所在的整形地址)通用形式就是 (int *) + 对象
课程须知
本课程是C++初级课程 1、熟练掌握C++语言基础语法
老师告诉你能学到什么?
1、虚函数、虚析构函数、纯虚函数 2、抽象类和接口类 3、运行时类别异常 4、异常处理

微信扫码,参与3人拼团

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

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

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消