類的析構函數是類的一種特殊的成員函數,它會在每次刪除所創建的對象時執行。
析構函數的名稱與類的名稱是完全相同的,只是在前面加了個波浪號(~)作爲前綴,它不會返回任何值,也不能帶有任何參數。析構函數有助於在跳出程序(比如關閉文件、釋放內存等)前釋放資源。
定義析構函數應滿足以下的要求:
1,析構函數的名稱是在構造函數的名稱之前添加個“~”
2,析構函數沒有參數
3,析構函數中不能通過return語句返回一個值。
4,一個類中只能有一個析構函數不可重載。
下面的實例有助於更好地理解析構函數的概念:
#include<iostream>
#include<cstring>
#include<string>
using namespace std;
class Car{
public:
Car();//無參構造函數的聲明
~Car();
string get_charname();
int get_seats();
private:
string m_pcarname;
int m_nseats;
};
Car::Car(){//定義無參的構造函數
cout << "car constructor !" << endl;
m_pcarname = "馬雲的邁巴赫";//定義指針成員的初值爲nullptr,值爲0
m_nseats = 4;
}
Car::~Car()
{
}
string Car::get_charname()
{
return m_pcarname;
}
int Car::get_seats()
{
return m_nseats;
}
int main(){
Car mycar;
cout << "汽車名" << mycar.get_charname() <<endl<< "座位有" << mycar.get_seats() <<"個"<<endl;
return 0;
}
運行結果爲: