解構函式與this指標
阿新 • • 發佈:2021-11-10
二、解構函式
1、知識點介紹
解構函式和建構函式一樣,也是一種特殊的函式,主要的作用是在物件結束生命週期時,系統自動呼叫解構函式,來做一些清理工作,比如在物件中有申請記憶體,那麼是需要自己去釋放記憶體的,這個釋放記憶體的操作就可以寫在解構函式中,在物件死亡的時候自動呼叫解構函式釋放記憶體,那麼這種就不需要擔心忘記釋放記憶體了。
2、解構函式的定義
1、函式名與類名相同,在前面加上一個~
~Student(){}
2、沒有返回值型別和返回值,也沒有引數
3、如果類中沒有自己寫解構函式,那麼系統將會給出一個隱式什麼都不幹的解構函式
3、解構函式的呼叫時機
1、解構函式可以主動通過物件呼叫,解構函式必須是公有屬性下的。
2、在物件死亡時,解構函式會主動呼叫它的解構函式。
4、解構函式的特點
1、解構函式做的事是對物件做一些清理工作,主動呼叫解構函式,並不會釋放物件。
2、一個類只有一個解構函式。
三、this指標
1、知識點介紹
1、this指標是系統自動生成的,且隱藏,我們看不到定義,但是可以使用
2、this指標並不是物件本身的一部分,它的作用域在類的內部。當類的普通函式在訪問類的普通成員的時候,該this指標總是指向呼叫者物件。
2、this指標的使用
1、必須在類中使用,在類外是使用不了的
2、this->成員名;或者(*this).成員名; 表示呼叫者的某個成員
3、return this; 表示返回當前呼叫者物件的地址
4、return *this; 表示返回當前呼叫者物件
3、this指標在程式碼中的表現
//1 在類中函式的形參和類中成員同名
void MyClass::fun(int sum)
{
this->sum = sum;
}
//這樣我們就能通過this指標指向sum,來表示this指向的這個sum是當前物件的sum。如果是sum=sum;那麼這兩個sum都是表示的形參。