C++ 中的解構函式


C++ 中的解構函式是對類中的物件進行刪除的成員函式。當類物件超出範圍時(例如函式結束、程式結束、呼叫 delete 變數等)便會呼叫它們。

解構函式不同於普通成員函式,因為它們不帶任何引數,也不返回任何內容。此外,解構函式的名稱與其類相同,其名稱前加一個波浪號(~)。

以下給出了演示 C++ 中解構函式的程式。

示例

 線上演示

#include<iostream>
using namespace std;
class Demo {
   private:
   int num1, num2;
   public:
   Demo(int n1, int n2) {
      cout<<"Inside Constructor"<<endl;
      num1 = n1;
      num2 = n2;
   }
   void display() {
      cout<<"num1 = "<< num1 <<endl;
      cout<<"num2 = "<< num2 <<endl;
   }
   ~Demo() {
      cout<<"Inside Destructor";
   }
};
int main() {
   Demo obj1(10, 20);
   obj1.display();
   return 0;
}

輸出

Inside Constructor
num1 = 10
num2 = 20
Inside Destructor

在上述程式中,類 Demo 包含一個帶引數的建構函式,該函式使用 n1 和 n2 所提供的值初始化 num1 和 num2。它還包含一個函式 display(),用於列印 num1 和 num2 的值。在 Demo 中還有一個解構函式,在類物件的範圍結束時呼叫該解構函式。其程式碼片段如下所示。

class Demo {
   private:
   int num1, num2;
   public:
   Demo(int n1, int n2) {
      cout<<"Inside Constructor"<<endl;
      num1 = n1;
      num2 = n2;
   }
   void display() {
      cout<<"num1 = "<< num1 <<endl;
      cout<<"num2 = "<< num2 <<endl;
   }
   ~Demo() {
      cout<<"Inside Destructor";
   }
};

函式 main() 包含類型別 Demo 的物件的定義。然後呼叫函式 display()。如下所示。

Demo obj1(10, 20);
obj1.display();

更新時間:2020-06-24

19K+ 瀏覽量

開啟你的 職業生涯

完成課程後獲得認證

開始
廣告