[類別] 解構元

解構元跟建構元一樣

都是類別裡面特殊的函數
建構元是在物件建立時呼叫
而解構元是不在需要物件時呼叫
解構元不能多載
而且也沒有引數跟傳回值

解構元格式:
~類別名稱((沒有引數))
{
    ………………..
     (沒有傳回值)
}
Ex:
在此例
由於解構元是在主函數(main)結束後才被呼叫
會馬上關閉視窗
所以加入讓使用者輸入的動作
延長顯示時間

[code language=”cpp”]
#include <iostream>
using namespace std;

class time
{
public:
//撰寫自訂解構元
~time()
{
int n;

cout << "解構元被呼叫" << endl; cin >> n;

}

private:
int hour;
int minute;
double second;
};

int main(){

time t1;
time t2;

}<span style="display: inline-block; width: 0px; overflow: hidden; line-height: 0;" data-mce-type="bookmark" class="mce_SELRES_start"></span>
[/code]

跟建構元一樣
如果程式設計者沒有提供自訂解構元時
編譯器會自動提供預設解構元
當程式設計者撰寫自訂的解構元後
編譯器就不再提供預設解構元
撰寫解構元的責任回到程式設計者身上
也可以將解構元定義寫在類別宣告外面
Ex:

[code language=”cpp”]
#include <iostream>
using namespace std;

class time
{
public:
~time();
private:
int hour;
int minute;
double second;
};

time::~time()
{
int n;

cout << "解構元被呼叫" << endl; cin >> n;

}

int main(){

time t1;
time t2;

}<span style="display: inline-block; width: 0px; overflow: hidden; line-height: 0;" data-mce-type="bookmark" class="mce_SELRES_start"></span>
[/code]

有疑問? 留個言吧!

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料