析构函数
更多
在 C++ 中,析构函数(Destructor)是类的一种特殊成员函数,它在对象生命周期结束时自动调用,用于清理对象占用的资源。
核心特性:
-
命名规则
~+ 类名(例:~MyClass()) -
调用时机
- 局部对象离开作用域时
- 动态分配的对象被
delete时 - 容器销毁时(如
vector析构) - 对象作为成员被外层对象析构时
-
关键特征
- 无返回值(不写
void) - 无参数(不可重载)
- 自动触发(通常不手动调用)
- 基类析构函数应声明为
virtual(多态基类必需)
- 无返回值(不写
作用:
- 释放动态内存(
delete/delete[]) - 关闭文件/网络连接
- 释放锁、GPU 资源等
- 其他清理操作(如日志记录)
示例代码:
#include <iostream>
class FileHandler {
public:
FileHandler() {
std::cout << "打开文件\n";
}
~FileHandler() { // 析构函数
std::cout << "关闭文件并释放资源\n";
}
};
int main() {
FileHandler fh; // 构造对象
// ... 使用文件 ...
return 0; // fh 离开作用域,自动调用 ~FileHandler()
}
输出:
打开文件
关闭文件并释放资源
重要原则:
- 三/五法则:若类需要自定义析构函数,通常也需要定义拷贝构造/赋值(或禁用移动语义)
- 虚析构函数:基类必须声明
virtual ~Base(){},确保通过基类指针删除派生类对象时正确调用所有析构函数 - 默认析构函数:未定义时编译器自动生成(仅调用成员变量的析构函数)
? 提示:析构函数应与构造函数配对使用,遵循 RAII(资源获取即初始化) 原则,是现代 C++ 资源管理的核心机制。
多次运行AIBase中的析构函数出现意外掉线的情况,怎么解决?
第一次运行无异常,但是第二次运行这里会意外掉线,try+catch同样无法捕捉,大家如何析构yolo的? 目前解决办法就是注释掉这段代码,不释放是否会出现问题,虽然暂时没发现异常
2025-08-14 07:10:49
Wifi,ZigBee和蓝牙大战小析资料下载
电子发烧友网为你提供Wifi,ZigBee和蓝牙大战小析资料下载的电子资料下载,更有其他相关的电路图、源代码、课件教程、中文资料、英文资料、参考设计、用户指南、解决方案等资料,希望可以帮助到广大的电子工程师们。
资料下载
其实znvm
2021-04-27 08:50:41
C++的123个经典笔试题目合集免费下载
delete 会调用对象的析构函数 , 和 new 对应 free 只会释放内存, new 调用构造
资料下载
路过秋天
2019-09-06 17:26:00
C++中的四种类型转换分别是哪些?C++中析构函数的作用是什么
C++中的四种类型转换分别是哪些?C++中析构函数的作用是什么?在C语言中关键字static主要有何作用?
2021-12-24 06:57:40
7天热门专题
换一换
换一换
- 如何分清usb-c和type-c的区别
- 中国芯片现状怎样?芯片发展分析
- vga接口接线图及vga接口定义
- 芯片的工作原理是什么?
- 华为harmonyos是什么意思,看懂鸿蒙OS系统!
- 什么是蓝牙?它的主要作用是什么?
- ssd是什么意思
- 汽车电子包含哪些领域?
- TWS蓝牙耳机是什么意思?你真的了解吗
- 什么是单片机?有什么用?
- 升压电路图汇总解析
- plc的工作原理是什么?
- 再次免费公开一肖一吗
- 充电桩一般是如何收费的?有哪些收费标准?
- ADC是什么?高精度ADC是什么意思?
- dtmb信号覆盖城市查询
- EDA是什么?有什么作用?
- 中科院研发成功2nm光刻机
- 苹果手机哪几个支持无线充电的?
- type-c四根线接法图解
- 华为芯片为什么受制于美国?
- 怎样挑选路由器?
- 元宇宙概念股龙头一览
- 锂电池和铅酸电池哪个好?
- 什么是场效应管?它的作用是什么?
- 如何进行编码器的正确接线?接线方法介绍
- 虚短与虚断的概念介绍及区别
- 晶振的作用是什么?
- 大疆无人机的价格贵吗?大约在什么价位?
- 苹果nfc功能怎么复制门禁卡
- amoled屏幕和oled区别
- 单片机和嵌入式的区别是什么
- 复位电路的原理及作用
- BLDC电机技术分析
- dsp是什么意思?有什么作用?
- 苹果无线充电器怎么使用?
- iphone13promax电池容量是多少毫安
- 芯片的组成材料有什么
- 特斯拉充电桩充电是如何收费的?收费标准是什么?
- 直流电机驱动电路及原理图
- 传感器常见类型有哪些?
- 自举电路图
- 通讯隔离作用
- 苹果笔记本macbookpro18款与19款区别
- 新斯的指纹芯片供哪些客户
- 伺服电机是如何进行工作的?它的原理是什么?
- 无人机价钱多少?为什么说无人机烧钱?
- 以太网VPN技术概述
- 手机nfc功能打开好还是关闭好
- 十大公认音质好的无线蓝牙耳机
相关标签