[類別] 解構元

解構元跟建構元一樣

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

解構元格式:
~類別名稱((沒有引數))
{
    ………………..
     (沒有傳回值)
}
Ex:
在此例
由於解構元是在主函數(main)結束後才被呼叫
會馬上關閉視窗
所以加入讓使用者輸入的動作
延長顯示時間
#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>
跟建構元一樣
如果程式設計者沒有提供自訂解構元時
編譯器會自動提供預設解構元
當程式設計者撰寫自訂的解構元後
編譯器就不再提供預設解構元
撰寫解構元的責任回到程式設計者身上
也可以將解構元定義寫在類別宣告外面
Ex:
#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>

有疑問? 留個言吧!

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