第22课 对象的销毁

本文内容取自于对狄泰学院 唐佐林老师 C++深度解析 课程的学习总结

析构函数

C++ 的类中可以定义一个特殊的清理函数
  • 这个特殊的清理函数叫做析构函数
  • 析构函数的 功能与构造函数相反
定义:~ClassName()
  • 析构函数没有参数也没有返回值类型声明
  • 析构函数在对象销毁时 自动被调用

析构函数的定义准则

     当类中自定义了构造函数,并且构造函数中使用了
系统资源(如:内存申请,文件打开,等)
需要自定义析构函数


程序实验
#include <stdio.h>

class Test
{
    int mi;
public:
    Test(int i)
    {
        mi = i;
        printf("Test(): %d\n", mi);
    }
    ~Test()
    {
        printf("~Test(): %d\n", mi);
    }
};

int main()
{
    Test t(1);
    
    Test* pt = new Test(2);
    
    delete pt;
    
    return 0;
}

运行结果
在这里插入图片描述

实验结果,分配在栈上的对象t1,随着程序的返回会调用析构函数
                  分配在堆上的对象指针pt,delete后时会调用析构函数




小结

  • 析构函数是 对象销毁时进行清理 的特殊函数
  • 析构函数在 对象销毁时自动被调用
  • 析构函数是对象 释放系统资源的保障
发布了42 篇原创文章 · 获赞 0 · 访问量 982

猜你喜欢

转载自blog.csdn.net/lzg2011/article/details/104390547