1. 程式人生 > >c++中函式前加~

c++中函式前加~

1.解構函式(destructor) 與建構函式相反,當物件脫離其作用域時(例如物件所在的函式已呼叫完畢),系統自動執行解構函式。解構函式往往用來做“清理善後” 的工作(例如在建立物件時用new開闢了一片記憶體空間,應在退出前在解構函式中用delete釋放)。

2.以C++語言為例:解構函式名也應與類名相同,只是在函式名前面加一個位取反符~,例如~stud( ),以區別於建構函式。它不能帶任何引數,也沒有返回值(包括void型別)。只能有一個解構函式,不能過載。如果使用者沒有編寫解構函式,編譯系統會自動生成一個預設的解構函式,它也不進行任何操作。所以許多簡單的類中沒有用顯示的解構函式。

#include<iostream>
using namespace std; class T { public: ~T(){cout<<"解構函式被呼叫。";} }; int main() { T *t=new T();//建立一個T類的指標物件t delete t; cin.get(); };

結果:
這裡寫圖片描述

FR:海濤高軟(hunk Xu)