c++中,有乙個特別的指標this,也叫自引用指標。這個指標的巧妙之處在於它永遠指向的是當前物件,由此便可以訪問當前物件的所有成員。這樣一來許多問題就得到了巧妙的解決。
注意,this 是乙個指標,要用->
來訪問成員變數或成員函式。
當呼叫到printpoint函式時,通過物件來訪問成員,此處this指標接受物件傳來的位址。
關於this指標,有以下幾點需做說明:
1. this指標的型別是類型別(*const)
2. 因為this指標不是物件本身的一部分,因此它不影響sizeof的結果。
3. this指標的作用域是在類內部。全域性函式,靜態函式不能使用this指標。
4. this指標時類成員函式第乙個預設的隱含引數。類的非靜態成員函式訪問類的非靜態成員時,編譯器會將物件的位址作為乙個隱含引數傳遞給函式。這個過程時編譯器自發進行的。它作為非靜態成員函式的隱含形參,對各成員的訪問均通過this進行。
以下是關於-thiscall的呼叫說明;
1. 只能用在類的成員函式上
2. 函式從左向右壓棧 (this從右到左)
3. 如果引數個數一定,this指標通過ecx傳遞給被呼叫者;若不確定引數個數,則被壓棧後壓入堆疊。
4. 函式引數個數確定,由呼叫者來清理堆疊,否則就由函式來清理。
C 開篇(七) 傳入引數使用值 引用 指標的場景
內容來自 c primer plus 第6版 1 使用引用引數的主要原因 1 程式設計師能夠修改呼叫函式中的資料物件 2 通過傳遞引用而不是整個資料物件,可以提高程式的執行速度。當結構和類物件比較大的時候,這點尤為重要 2 對於使用傳遞的值,但是不做修改的函式 1 如果資料物件很小,如內建資料型別或...
c 引用 指標
1.引用的作用 給變數起乙個別名,是c 對c的擴充。原名和別名有相同的位址,根本上就是同乙個東西,只是名字不一樣。c 的引用機制主要是為了用作函式引數,增強函式傳遞資料的能力,比如swap函式,引用就是為了直接修改實參。2.宣告方式 int a int b a 緊跟在資料型別後,即為引用宣告符,其他...
C 引用 指標
1.引用的概念及用法 引用 引用不是定義乙個新的變數,而是給乙個已經定義的變數重新起乙個別名。例如 int b a b是a的引用,即b是a的別名。引用的特點 a.乙個變數可取多個別名 b.引用必須初始化 int b 不知道b是誰的別名 c.引用只能在初始化的時候引用一次,不能改變為再引用其他的變數 ...