析构函数初学

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

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

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

析构函数是系统本身调用的,如咱们再调用的话,会出错,以下代码:spa

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

 

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

相关文章
相关标签/搜索