析构函数初学

析构函数用于在一个对象结束时,清理这个对象中的数据,从而更有效的管理资源。现在来研究何时调用析构函数

Civi对象的头文件

#ifndef __destructor__
#define __destructor__
#include <iostream>
#include <string>
using namespace std;

class Civi
{
    public:
        Civi();
        ~Civi();
        void println();
    private:
        string name;
        int age;
};

#endif

在构造函数和析构函数中都有输出来显示当前的显示内容

析构函数是系统自己调用的,如我们再调用的话,会出错,如下代码:

int main()
{
     cout<<"Begin"<<endl;
     Civi civi;
     civi.println();
     civi.~Civi();
     cout<<"end"<<endl;
     return 0;
}

 

析构函数初学_第1张图片

在"end"之前的是civi.~Civi()调用的,“end”之后的是系统调用的,但是运行完以后提示double free or corruption,所以应该注意

你可能感兴趣的:(C++,析构函数)