注:以下问题的部分解析并非全部是自己原创,只是为了便于以后复习,直接粘贴总结的答案,主要来源是七月在线中的解析部分。https://www.julyedu.com/question/selectAnalyze/kp_id/4/cate/C

1、 以下哪些做法是正确的( )

A 构造函数声明为虚函数

B 派生关系中的基类析构函数声明为虚函数

C 构造函数调用虚函数

D 析构函数调用虚函数

解释:选B

虚函数不能是内联函数,构造函数不能是虚函数。

A选项,构造函数不能声明为虚函数,虚函数对应一个vptr(虚函数表指针),可是vptr其实是存储在对象的内存空间的。如果构造函数是虚的,就需要通过 vptr来调用,可是对象还没有实例化,也就是内存空间还没有,无法找到vptr,所以构造函数不能是虚函数。

B选项,析构函数可以声明为虚函数,而且有时是必须声明为虚函数,是因为删除指向派生类的基类指针的时候,如果基类析构函数不是虚函数,派生类的析构函数将不会被执行,其直接后果是内存泄漏。

C选项,在构造函数里面调用虚函数,编译不会报错,但是最好不要这样做。在调用构造函数时,类里面的变量可能还被未初始化,虚函数这时可能会访问内存中未知的区域而产生错误,所以最好不要在构造函数里调用虚函数。

D选项,在析构函数中调用虚函数,最好不要这样做。对象的析构过程是先析构派生类,然后析构基类;当在基类的析构函数调用虚函数,往往其派生类部分已经被析构,所以也不会呈现出多态。而如果在基类的析构函数中调

c语言 release函数报错,91-100相关推荐

  1. linux的gets函数,Linux 下使用C语言 gets()函数报错

    在Linux下,使用 gets(cmd) 函数报错:warning: the 'gets' function is dangerous and should not be used. 解决办法:采用 ...

  2. linux c语言 休眠函数,c语言sleep函数报错

    关于sleep()函数在windows系统和linux系统下是两个不同的函数,差别较大,但功能是相同的,都是将进程挂起一段时间. windows系统下函数名为Sleep(),其函数原型为: #incl ...

  3. VS使用scanf函数报错解决方法

    VS使用scanf函数报错解决方法 首先来看一段很简单的C语言代码 #include<stdio.h> int main(void) {char s[10];scanf("%s& ...

  4. 2021-06-10 工作笔记 ng-change不能触发的解决方法+wui-date日期选择器使用onchange调用函数报错

    当通过JavaScript来修改ng-model的值,ng-change不能触发 <input type="number" ng-model="testNumber ...

  5. DataFrame/Series运行round()函数报错“TypeError: a float is required”解决办法

    DataFrame/Series运行round()函数报错"TypeError: a float is required"解决办法 原代码片段: #把数据按年龄分层,然后按照不同层 ...

  6. 【教程】如何解决vs编译器scanf函数报错问题

    如何解决vs编译器函数报错问题 问题来源 解决方法 1.使用_S下标 方法一的致命缺点 2.使用防报错语句 方法二的缺点? 如何在vs编译器里加上默认语句 结语 问题来源 当我们使用vs编译器编译c语 ...

  7. 解决vs2015使用fopen、fprintf等函数报错的问题

    解决vs2015使用fopen.fprintf等函数报错的问题 参考文章: (1)解决vs2015使用fopen.fprintf等函数报错的问题 (2)https://www.cnblogs.com/ ...

  8. ffmpeg avcodec_encode_video2 函数报错

    ffmpeg avcodec_encode_video2 函数报错 参考:https://blog.csdn.net/shuihappy1/article/details/71721374 总结此次出 ...

  9. Swift5版本以上自定义回调函数报错

    Swift5版本以上自定义回调函数报错 最新swift版本要求在回调函数前面加入@escaping 关键字,以前不写,默认加入,现在不行了 假设一个类写一个全局类方法,第一步写一个class ,代表类 ...

最新文章

  1. CV业务落地用Transformer吗?
  2. 玩Android的第一天
  3. c语言排序教学过程,C语言中冒泡排序算法教学设计
  4. .Net转Java.02.数据类型
  5. 文件_ _android从资源文件中读取文件流并显示的方法
  6. 1、虚拟机内存管理、运行时数据区、线程共享区、Java堆、新生代、老年代、Eden区域分配、方法区、线程独占区、虚拟机栈
  7. 一起撸个朋友圈吧 图片浏览(上)【图片点击前景色】
  8. lua实现多继承-方式1
  9. 在Graphite中存储Hystrix的几个月历史指标
  10. python字符串(连载二)|字符串内置函数原来还可以这么玩!
  11. linux设备驱动开发专业论坛www.linuxdriver.cn诚征斑竹
  12. IPLAT62--后台返回提示参数
  13. 2021年华为杯数学建模竞赛
  14. Microsoft .NET Framework 4 安装 1603错误的解决
  15. 【突破次元壁】谁说二次元离我们遥远?Python特效火遍全网,关键技术原来是它。
  16. 对接支付宝App支付接口详解
  17. 生成划掉的字_横向划掉字体 划掉字体生成器
  18. 迈阿密牛津计算机专业,2020年迈阿密大学牛津专业设置
  19. 干货,QQ音乐歌手列表解密方法!
  20. AD域控管理之授权普通用户或组管理计算机加入域和退出域的权限

热门文章

  1. 【第三方互联】4、分享至腾讯QQ、新浪微博(sina)
  2. 11.2 申请API KEY
  3. [Games101] Lecture 03-04 Transformation
  4. Android 亮屏流程分析
  5. 万国觉醒迁服务器显示该王国还未开放,万国觉醒的定点迁城怎么用?怎么获得定点迁城?...
  6. 嵌入式实践项目(二)——机房温度监控系统
  7. java 游标 查数据_Java中的大量数据查询
  8. 用Python中的py2neo库操作neo4j,搭建简单关联图谱—基于家有儿女中的人物关系
  9. 九龙证券|这一刻,资本市场进入全新时代!
  10. 单周期CPU实验之学习之旅