司二 2021-06-19 02:51 采纳率: 80.8%
浏览 42
已采纳

关于虚函数的调用问题

为什么定义析构函数为虚函数的时候,用基类指针指向派生类对象,在析构的时候,会先调用派生类的析构函数,然后派生类自动调用基类的析构函数

但是将普通的基类成员函数定义为虚函数,派生类调用该函数后,不会自动调用基类的该函数?

展开全部

  • 写回答

1条回答 默认 最新

  • robot8me 2021-06-19 04:12
    关注

    “但是将普通的基类成员函数定义为虚函数,派生类调用该函数后,不会自动调用基类的该函数?”如果派生类调用该函数后自动调用基类的该函数,那多态的意义就没有。析构函数先调用派生类再调用基类,这个具体原理我不清楚,可能是C++标准规范里设计如此。这样可以防止内存泄漏,如果析构函数指调用了派生类的,基类的没有调用,那基类里面定义的一些对象可能会没有释放。一般析构函数是用来释放内存或者资源的。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
编辑
预览

报告相同问题?

悬赏问题

  • ¥20 如何用Python删除单元格内连续出现的重复词?
  • ¥15 WangEditor嵌入到geeker-admin中,回车没有办法换行
  • ¥30 stm32f103c8t6制作万能红外遥控器
  • ¥15 有人会fastcrud写前端页面吗
  • ¥15 如何解除Uniaccess管控
  • ¥15 微信小程序跳转关联公众号
  • ¥15 Java AES 算法 加密采用24位向量报错如何处理?
  • ¥15 使用X11可以找到托盘句柄,监控到窗口点击事件但是如何在监听的同时获取托盘中应用的上下文菜单句柄
  • ¥45 字符串操作——数组越界问题
  • ¥15 Loss下降到0.08时不在下降调整学习率也没用