当前位置: 首页 > ds >正文

【C++】类的析构函数

类的析构函数

  • 1. 作用:
    • 1.1 当对象的地址空间释放的时候,会自动调用析构函数(对象可以主动调用析构函数)
    • 1.2 实际应用:往往用来做收尾工作
  • 2. 语法规则:
      • 示例代码:析构函数使用

1. 作用:

1.1 当对象的地址空间释放的时候,会自动调用析构函数(对象可以主动调用析构函数)

  • 栈空间 --》函数调用结束,自动释放,自动析构
  • 堆空间 --》函数调用结束不会主动释放,除非你主动调用delete

1.2 实际应用:往往用来做收尾工作

比如:

  • 构造函数–》初始化工作,使用open打开一个文件
  • 给指针分配堆空间
  • 析构函数–》收尾工作,使用close关闭文件
  • 主动释放堆空间

2. 语法规则:

~类名()
{
代码
}

特点:

  • 析构函数没有任何重载形式
  • 析构函数没有任何参数
  • 如果程序员没有定义析构函数,系统会自动生成一个析构函数

如果程序员自定义析构函数,那么系统就不会再自动生成默认的析构函数

示例代码:析构函数使用

#include <iostream>using namespace std;class Animal
{
public:// 定义动物的构造函数Animal(){name = new char[10];cout<<"动物的构造函数,当前对象是:"<<this<<endl;}// 定义动物的析构函数~Animal(){delete []name;cout<<"动物的析构函数,当前对象是:"<<this<<endl;}private:char *name;};int main(int argc, char const *argv[])
{//创建三个对象栈空间--》主函数结束的时候,自动释放c1 c2 c3的地址空间--》析构就随之调用Animal a1, a2, a3;// 堆空间Animal *a4 = new Animal;delete a4;return 0;
}/*
执行结果:动物的构造函数,当前对象是:0x7ffcf68aac48动物的构造函数,当前对象是:0x7ffcf68aac50动物的构造函数,当前对象是:0x7ffcf68aac58动物的构造函数,当前对象是:0x563102dd4320动物的析构函数,当前对象是:0x563102dd4320动物的析构函数,当前对象是:0x7ffcf68aac58动物的析构函数,当前对象是:0x7ffcf68aac50动物的析构函数,当前对象是:0x7ffcf68aac48
*/
http://www.xdnf.cn/news/10687.html

相关文章:

  • Axure 基础入门
  • 【Linux】网络--网络层--IP协议
  • JavaSE知识总结 ~个人笔记以及不断思考~持续更新
  • 短视频平台差异视角下开源AI智能名片链动2+1模式S2B2C商城小程序的适配性研究——以抖音与快手为例
  • debian12操作系统apt命令出现无法安全的用该源更新解决方案
  • 池中锦鲤的自我修养,聊聊蓄水池算法
  • 4、ubuntu系统 | 文本和目录操作函数
  • 结构型设计模式之桥接模式
  • 结构型设计模式之装饰模式
  • NodeJS全栈WEB3面试题——P4Node.js后端集成 服务端设计
  • 【C语言预处理详解(下)】--#和##运算符,命名约定,命令行定义 ,#undef,条件编译,头文件的包含,嵌套文件包含,其他预处理指令
  • Android基于LiquidFun引擎实现软体碰撞效果
  • 吴恩达MCP课程(5):research_server_prompt_resource.py
  • LabVIEW轴角编码器自动检测
  • 助力高校AI教学与科研:GpuGeek推出618算力支持活动
  • 【拓扑排序】P6560 [SBCOI2020] 时光的流逝|普及+
  • day16 leetcode-hot100-30(链表9)
  • 【模拟电子电路-学习链接】
  • 嵌入式项目之mini2440系统制作烧写
  • CppCon 2014 学习:ASYNC SEQUENCES AND ALGORITHMS
  • 各种乱码问题解决措施
  • 【染色归一化】staintools工具详讲
  • 2025年进口床垫品牌推荐榜单:精选优质床垫,开启舒适睡眠之旅
  • Git深入解析功能逻辑与核心业务场景流程
  • 剑指offer13_剪绳子
  • 头歌数据库课程实验(角色管理)
  • 球展世界,筑梦中原,2025郑州台球展会,年中招商即将开启
  • 《汇编语言》第13章 int指令
  • Linux系统隐藏鼠标指针
  • 使用西门子博图V16时遇到了搜索功能报错的问题,提示缺少SIMATIC Visualization Architect组件怎么办,全网首发