this指標說明(c )

2021-07-11 11:47:15 字數 739 閱讀 5189

1.提出

c++中,同一類的物件都有各自的資料成員的儲存空間,但是系統不會為每個類的物件建立成員函式的副本。

class tclass

;若有tclass a,*b;

a.print();

b->print();

但從成員函式voidtclass::print();看,並不知道它正在哪個物件上操作。

因此,c++中為成員函式提供了乙個稱為this的隱含指標引數。

2.說明

當乙個物件呼叫類的成員函式時,該物件的位址傳遞給了this指標,從而在不同物件呼叫同一成員函式時不會出現混亂的情況

3.補充

1.乙個物件的this指標並不是物件本身的一部分,不會影響sizeof(物件)的結果。this作用域是在類內部,當在類的非靜態成員函式中訪問類的非靜態成員的時候,編譯器會自動將物件本身的位址作為乙個隱含引數傳遞給函式。也就是說,即使你沒有寫上this指標,編譯器在編譯的時候也是加上this的,它作為非靜態成員函式的隱含形參,對各成員的訪問均通過this進行

2.對於靜態成員函式,由於它是共同的操作,從而不需要指明它是哪個物件在操作,因此也就沒有this指標

3.this是乙個長指標,相當於classtype * const this,所以一旦初始化(成員函式被呼叫)之後,獲取了物件的位址,指標就不能就不能被修改,保證不會指向其他物件(這裡是指在當前物件呼叫中不能修改)。

C語言指標說明

今天在閱讀 時發現一下幾行 define gpbcon volatile unsigned long 0x56000010 define gpbdat volatile unsigned long 0x56000014 define gpfcon volatile unsigned long 0x5...

c 函式指標說明

下面隨筆說明函式指標用法。定義形式 儲存型別 資料型別 函式指標名 含義 函式指標指向的是程式 儲存區 通過函式指標呼叫的函式 例如將函式的指標作為引數傳遞給乙個函式,使得在處理相似事件的時候可以靈活的使用不同的方法。呼叫者不關心誰是呼叫者 需知道存在乙個具有特定原型和限制條件的被呼叫函式。1 in...

《C和指標》一1 2 補充說明

本章的例子程式描述了許多c語言的基礎知識。但在你親自動手編寫程式之前,你還應該知道一些東西。首先是putchar函式,它與getchar函式相對應,它接受乙個整型引數,並在標準輸出中列印該字元 如前所述,字元在本質上也是整型 同時,在函式庫裡存在許多操縱字串的函式。這裡我將簡單地介紹幾個最有用的。除...