析构函数用于在一个对象结束时,清理这个对象中的数据,从而更有效的管理资源。现在来研究何时调用析构函数
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; }
在"end"之前的是civi.~Civi()调用的,“end”之后的是系统调用的,但是运行完以后提示double free or corruption,所以应该注意