析構函數用於在一個對象結束時,清理這個對象中的數據,從而更有效的管理資源。如今來研究什麼時候調用析構函數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