this指標的學習

2021-10-07 05:52:43 字數 1327 閱讀 3031

this指標的一些特性

1它並不是物件本身的一部分,不影響物件的結果。且它的作用域是在類的內部。

當在類的非靜態成員函式中訪問類的非靜態成員的時候,編譯器會自動將物件本身的位址作為乙個隱含引數傳遞給函式。例如:呼叫data.setmonth(9)等價於setmonth(&data,9)

2 this 指標可以儲存當前物件的位址

3 使用

this指標只能在成員函式中使用

只有獲得乙個物件後,才能通過物件使用指標

在類的非靜態成員函式中返回類物件本身的時候,直接用return*this;

當引數與成員變數名相同時,如 this-> n =n;(不能寫成n=n)

4作用this指標,它作為非靜態成員函式的隱含形參,對各成員的訪問都是通過this指標。成員函式之所以能對此類的各個物件的資料區別開來,就是靠this指標,函式體裡面對資料成員的訪問,都會轉化為this->資料成員的形式。

this指標記錄每個物件的記憶體位址,通過「->」訪問該物件的成員

例1

程式中this指標的使用分析:

a.物件point1呼叫point 類中的movepoint函式的時候,point1物件的位址

傳遞給了this指標。

b movepoint函式的原型應該是void movepoint(pointthis, int a, int b),第乙個

引數是應該是指向該類物件的指標,定義函式成員的時候沒有看到是因為,

這個引數在類中是隱含的,這樣point1物件的位址傳給了this指標.

所以movepoint函式顯式的寫為:

void movepoint(pointthis, int a, int b)

c 可知point1物件呼叫該函式後,point1物件的資料成員被更新了值。過程如下:

point1.x+ = a; point1.y+ = b;

類的例項就是類的物件

例2

a.set(9)等同於set(&a,9)

this->i=x;這句話就表示把x的值賦值給當前的物件的私有成員函式i。也就是把9的值給了i

i此時等於9,再第6句程式的時候,就get到了9的值。

這就是在類的非靜態成員函式中呼叫非靜態成員

由例2 可知

this指標作用:

this指標最大的作用就是儲存了當前物件的位址,並用指標的形式指向了

當前的物件

**:

指標的學習

一 p 和 p用法 1 y p 等於y p p 例 int p,a 3,y 0 p a printf d,x p,p 結果 3,bf884ff8 y p printf d,x y,p 結果 3,bf884ffc printf x p 結果 bf884ffc 2 y p 把 p的內容 1給y。例 in...

C 指標的學習

include head.c void main end switch end for end main void arrayref end for printf 1 output n for n 0 n 10 n end for printf n end arrayref void fingera...

指標陣列的學習

本章主要講解的內容是如何通過指針對二維陣列進行遍歷 首先,講解一下二維陣列,int a 3 3 二維陣列的數學概念就是乙個3 3階的矩陣形式,而實際中,二維陣列在記憶體中是一維線性排列的 我們先定義乙個指向a的指標p,int p 4 a。其中的優先順序高於 如果我們不帶上括號,就會變成 int p ...