C this指標的用法,相關知識點

2021-08-30 18:03:25 字數 721 閱讀 6708

1. this指標只能在類的成員函式中呼叫,表示當前物件的位址;

void data::set_month(int mn)

2. this指標只能在類的成員函式中使用,全域性函式和靜態函式都不能使用this;

實際上,類的成員函式預設的第乙個引數為   t* const register this,

針對class a},

實際上func原型在編譯器看來為: int func(a* const register this, int p);

3. this指標在類的成員函式開始之前構造,在類的成員結束後清除,這是this指標的生命週期。

當呼叫乙個類的成員函式時,編譯器將類的指標作為函式this引數傳遞過去,如:

a a;

a.func(10);

此時,編譯器將會編譯成:a::func(&a, 10);

編譯器通常會對this指標做一些優化,因此,this指標的傳遞效率比較高,像vc是由ecx暫存器來傳遞this指標引數的。

4. this指標引編譯器不同,放置的位置不同,可能是棧,可能是暫存器,甚至是全域性變數;

5. this指標是通過類的成員函式的首引數來傳遞的;

6. 【注】

C this指標的用法

this指標的含義及其用法 1.this指標是乙個隱含於每乙個成員函式中的特殊指標。它指向正在被該成員函式操作的那個物件 2.當對乙個物件呼叫成員函式時,編譯程式先將物件的位址賦給this指標,然後呼叫成員函式,每次成員函式訪問資料成員時,由隱含使用this指標。3.當乙個成員函式被呼叫時,自動向它...

相關知識點

nweb inf uclasses uweb.xml ulib n 從httpservlet 繼承,重寫doget dopost方法 n部署web.xml n 只有乙個物件 n 第一次請求的時候被初始化,只一遍 n 初始化後先呼叫init 方法,只一遍 n 每個請求,呼叫一遍service serv...

指標知識點

指標定義 指標是乙個變數,儲存的內容為位址。int num 5 如果系統分配給num的空間為0x1000到0x1003 num的位址就為首位元組位址0x1000。0x1000內儲存的內容為5。定義指標p int p 指標p內儲存的內容為num的位址,如果系統給p分配的位址為0x2000,可以得到下圖...