this指標的概念(2)

2022-09-09 04:18:13 字數 1258 閱讀 8404

我們知道,c++中成員變數和成員函式是分開儲存的,每乙個非靜態成員函式只會誕生份函式例項,也就是說多個同型別的物件會共用一塊**(彙編角度看)

那麼問題是:這一塊**如何區分是哪個物件呼叫自己的呢?

c++通過提供特殊的物件指標——this指標。可以解決上述的問題,this指標指向被呼叫成員函式的所屬的物件。

這句話怎麼理解呢?(每當我們建立乙個物件的時候,編譯器會自動提供乙個this指標指向呼叫了類的成員函式的物件)

注意事項:

1.this指標是隱含在每乙個非靜態成員函式內的一種指標(也就是說靜態成員函式內沒有this指標)

2.this指標是不需要定義的,直接使用即可。

this指標的作用:

1.當形參和變數同名的時候,可用this指標來區分。

2.在類的非靜態成員函式中返回物件本身,可使用return *this。

1 #include 2

using

namespace

std;34

class

person512

13 person& personaddperson(person &p) //

引用返回

1419

20int

age;

21};

2223

//1.解決名稱衝突

24void test_01(void)25

2930

//2.返回物件本身,用*this

31void test_02(void)32

4041

int main(void)42

辨析:值返回和引用返回的細微差別。

1 person personaddperson(person &p) //

值返回2{3

this->age +=p.age;45

return *this;//

因為持續的追加,需要返回p2物件本身

6

值返回的時候,this->age = (p2.age + p1.age) + p1.age = 20;返回的*this只表示(p2.age + p1.age)中的p2.age ,因為this指向p2。

引用返回的時候,this->age = (p2.age + p1.age) + p1.age = 30;返回的*this表示(p2.age + p1.age)結果的位址。

指標的概念

第一章。指標的概念 指標是乙個特殊的變數,它裡面儲存的數值被解釋成為記憶體裡的乙個位址。要搞清乙個指標需要搞清指標的四方面的內容 指標的型別,指標所指向的型別,指標的值或者叫指標所指向的記憶體區,還有指標本身所佔據的記憶體區。讓我們分別說明。先宣告幾個指標放著做例子 例一 1 int ptr 2 c...

指標的概念

指標的概念 1.指標 pointer。所謂指標,就是乙個位址。2.指標變數,存放指標型別資料的變數。指標和指標變數一定要區別開來,指標變數就是乙個儲存指標以及位址資料的變數,而指標指的是被儲存位址。3.定義 int p 定義了乙個p,存放乙個int 型別的位址。型別決定了讀取資料時讀取多少個位元組。...

用於推薦系統評估的概念與指標(2)

建立衡量日常生活級別新穎性的指標並非易事。新穎性等級1的衡量必須考慮系統上下文中的資訊,以便衡量使用者已知和未知的內容。系統級別的新穎性有許多定義。簡單來說,對使用者而言,新專案是指使用者不知道或者知道很少的專案。有人認為,新穎性是指推薦系統 使用者不知道且通過其他渠道也不會發現的專案。新穎性也被定...