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();
廣告