析構函數初學

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

相關文章
相關標籤/搜索