c++ - 在 C++ 中使用虚拟析构函数
问题描述
虚和纯虚析构函数在 C++ 中的应用是什么?在什么情况下我必须使用虚拟析构函数而不是普通析构函数?
解决方案
当指向基类对象的指针被删除时,编译器会根据指针所指的对象的实际类型调用相应的析构函数。
如果基类析构函数不是虚函数,当基类指向派生类对象的指针被删除时,编译器会自动调用基类的析构函数,而不考虑实际对象是否是基类的对象。这个可能导致内存泄漏。
推荐阅读
- machine-learning - TypeError:在拟合 keras 模型时,只能将 size-1 数组转换为 Python 标量
- javascript - 方法可以是纯函数吗?
- python - 在 Colab 和本地运行相同的代码会产生不同的结果。不涉及随机化或神经网络训练
- python - 使用 X86 主机在 Arm docker 上录制声音失败 - pyaudio
- .net - 当我在本地时,如何将 appsettings.json 配置为与项目具有不同的连接字符串
- node.js - 来自 express 的 GET 或 POST 不解析“百分号”请求
- c - 根据 C 约定,被调用函数的责任是返回给定类型还是调用函数?
- flutter - 未处理的异常:NoSuchMethodError:方法“animateCamera”在 null 上调用
- file - 在 Svelte 中导入另一个文件时保持文件的显示内容
- c# - 正则表达式查找文本中出现的所有占位符