C++中析构函数

析构函数

析构函数(Destructor)是类的一种特殊成员函数,用于在对象的生命周期结束时执行清理操作,他的主要作用是释放对象占用资源,例如动态分配的内存,文件句柄或网络连接等。

特点

  1. 名称与类名称相同 单前面加一个波浪号~
  2. 无返回值,也不能指定参数。
  3. 自动调用 :当对象超出作用域或被显示删除(delete)时,析构函数会被自动调用。
  4. 一个类只能有一个析构函数 ,不能重载。

示例代码

cpp 复制代码
#include <iostream>
using namespace std;

class MyClass{
	public:
		MyClass(){
			cout << "调用了构造函数!" << endl;
		}
		~MyClass(){
			cout << "调用了析构函数" << endl;
		}
};

int main(){
	MyClass obj;// 构造函数被调用
    // 当程序结束时,析构函数会被调用
	return 0;
}

注意事项

1.如果类中有动态分配的资源,必须在析构函数中释放它们以避免内存泄漏。

2.在继承中,派生类的构造函数会先执行,然后再调用基类的析构函数。

3.如果类中没有显示定义析构函数,编译器会生成一个默认的析构函数。

常见用途

  • 释放动态内存
  • 关闭文件或者网络连接
  • 清理临时数据
相关推荐
帅得不敢出门4 分钟前
精简Android SDK(AOSP)的git项目提高git指令速度
android·java·开发语言·git·elasticsearch
liu****6 分钟前
10.排序
c语言·开发语言·数据结构·c++·算法·排序算法
爱写Bug的小孙6 分钟前
Tools、MCP 和 Function Calling
开发语言·人工智能·python·ai·ai编程·工具调用
小小Fred8 分钟前
FreeRTOS函数prvInitialiseNewTask解析
java·开发语言
快乐的划水a12 分钟前
std::thread与pthread关系
c++
_OP_CHEN13 分钟前
【算法基础篇】(三十二)动态规划之背包问题扩展:从多重到多维,解锁背包问题全场景
c++·算法·蓝桥杯·动态规划·背包问题·算法竞赛·acm/icpc
小杜的生信筆記15 分钟前
基于R语言绘制网络图,新人选手上手
开发语言·r语言·生物信息学·组学
小码哥06818 分钟前
家政服务管理-家政服务管理平台-家政服务管理平台源码-家政服务管理平台java代码-基于springboot的家政服务管理平台
java·开发语言·spring boot·家政服务·家政服务平台·家政服务系统·家政服务管理平台源码
爪洼守门员19 分钟前
前端性能优化
开发语言·前端·javascript·笔记·性能优化
Array*28 分钟前
java实现word中插入附件(支持所有文件格式)
java·开发语言·word·poi·ole