1. 程式人生 > 其它 >解構函式與this指標

解構函式與this指標

二、解構函式

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都是表示的形參。