第22课.对象的销毁

1.析构函数

a.c++的类中可以定义一个特殊的清理函数:析构函数。析构函数的功能与构造函数相反。
b.定义:

~ClassName()

1).析构函数没有参数没有返回值类型声明
2).析构函数在对象销毁时自动被调用
(因为没有参数,所以析构函数不存在函数重载的问题)

#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;            //这里new分配的空间需要delete来释放时才会使对象调用它的析构函数,要是使用delete来释放结果如下第二张
    
    return 0;
}


猜你喜欢

转载自www.cnblogs.com/huangdengtao/p/11826662.html