从实现上看,vbtl在构造函数调用后才建立,因而构造函数不可能成为虚函数   
  从实际含义上看,在调用构造函数时还不能确定对象的真实类型(因为子类会调父类的构造函数);而且构造函数的作用是提供初始化,在对象生命期只执行一次,不是对象的动态行为,也没有太大的必要成为虚函数

 析构函数设为虚函数的作用:
  解释:在类的继承中,如果有基类指针指向派生类,那么用基类指针delete时,如果不定义成虚函数,派生类中派生的那部分无法析构。造成内存泄漏

转载于:https://www.cnblogs.com/danielrocks/p/3415511.html

构造函数和析构函数能不能是虚函数相关推荐

  1. 【C++深度剖析教程33】C++中的构造函数与析构函数是否可以为虚函数

    加qq1126137994 微信:liu1126137994 一起学习更多技术!!! 问题一:构造函数与析构函数可以成为虚函数么? 答案: 1.构造函数不可以成为虚函数 因为在构造函数执行结束后,虚函 ...

  2. C++经验(四)-- 基类构造函数和析构函数中调用virtual虚函数?

    class Base {public:Base();virtual void oneFunction() = 0;... };Base::Base() {...oneFunction(); }clas ...

  3. 构造函数和析构函数能否声明为虚函数?

    构造函数不能声明为虚函数,析构函数可以声明为虚函数,而且有时是必须声明为虚函数. 不建议在构造函数和析构函数里面调用虚函数. 构造函数不能声明为虚函数的原因是: 解释一:所谓虚函数就是多态情况下只执行 ...

  4. 构造函数不可以声明为虚函数,析构函数可以声明为虚函数

    构造函数不能声明为虚函数,而析构函数可以声明为虚函数,在有的情景下析构函数必须声明为虚函数.  不建议在构造函数和析构函数里调用虚函数. 构造函数不能声明为虚函数的原因? 构造一个对象时,必须知道对象 ...

  5. 构造函数为什么一般不定义为虚函数?而析构函数一般写成虚函数的原因 ?

    1.构造函数不能声明为虚函数 1)因为创建一个对象时需要确定对象的类型,而虚函数是在运行时确定其类型的.而在构造一个对象时,由于对象还未创建成功,编译器无法知道对象的实际类型,是类本身还是类的派生类等 ...

  6. 析构函数为什么写成虚函数?

    由于类的多态性,基类指针可以指向派生类的对象.如果删除该基类的指针,就会调用该指针指向的派生类的析构函数,而派生类的析构函数又会自动调用基类的析构函数,这样整个派生类的对象被完全释放.· 如果析构函数 ...

  7. 为什么基类的析构函数要声明成虚函数

    记得以后基类(父类) 的析构函数最好是声明为 虚函数 即:virtual 开发中遇到了一个比较傻逼的bug,也证明了理论与实际之间的差距. 在基类中没有声明其析构函数为虚函数,导致delete 释放操 ...

  8. C++——析构函数为什么要为虚函数

    注:本文内容来源于zhice163博文,感谢作者的整理. 为什么基类的析构函数是虚函数? 在实现多态时,当用基类操作派生类,在析构时防止只析构基类而不析构派生类的状况发生. 下面转自网络:源地址 ht ...

  9. C++析构函数为什么要为虚函数?

    1.为什么基类的析构函数是虚函数? 在实现多态时,当用基类操作派生类,在析构时防止只析构基类而不析构派生类的状况发生. 下面转自网络:源地址 http://blog.sina.com.cn/s/blo ...

最新文章

  1. 90sec mysql_dedecms被挂马 /plus/90sec.php解决方法
  2. Kali Linux下运行Sniffjoke出错的解决
  3. 【HDOJ】1196 Lowest Bit
  4. .Net面试经验,从北京到杭州
  5. JavaScript and CSS
  6. c语言创建通讯录不用指针,用C语言做通讯录,只能用数组,不能用指针,急用啊,谢谢了...
  7. Tomcat性能调优及JVM内存工作原理
  8. 移动Web开发之流式布局笔记
  9. 计算机无法删除ie,ie删不掉的原因及解决方法【图解】
  10. 心理学与生活 - 发展与教育
  11. openGL中用Assimp库加载骨骼动画
  12. IT人跨界:开了咖啡店却从没想过赚钱
  13. PHP3d地球,Photoshop制作真实3D立体地球
  14. MOOC《程序设计入门——C语言》错题集
  15. 计算机学猫叫音乐,抖音学猫叫音乐 抖音学猫叫什么歌
  16. 基于MATLAB开发AUTOSAR软件应用层模块-part4.将MATLAB生成的ARXML文件导入到达芬奇Developer
  17. BUUCTF-九连环
  18. 不愧是腾讯 ,问的贼细
  19. 揭秘软件臃肿的真实原因!
  20. Unity炸弹爆炸伤害(群攻伤害)

热门文章

  1. pico park无法连接至远程服务器,picopark联机失败怎么办 picopark联机进不去问题解决方法...
  2. thymeleaf 获取yml中的值_SpringBoot引入Thymeleaf
  3. 数据挖掘的一个完整过程
  4. hdu3691(无向图最小割的求解)
  5. [JLOI2011]不重复数字
  6. linux查看并口设备,如何在LINUX下实现硬件的自动检测(下)
  7. vc下c语言网络编程,用VC编写C/S消息传送程序
  8. PKUWC2019游记WC2019游记
  9. python-三元运算
  10. 小程序短视频项目———开发用户登录注册(一)