this指標簡介
objcet a = new object();
object b = new object();
a.f(1);
b.f(2);
為了能用簡便的
、物件導向的語法來書寫**——亦即「將訊息發給物件」,編譯器為我們完成了一些幕後工作
。其中的秘密就是第乙個自變數傳遞給方法 f (),而且那個自變數是準備操作的那個物件的控制代碼
。所以前述的兩個方法呼叫就變成了下面這樣的形式(注:這是內部的表達形式,我們並不能這樣書寫表示式):
objcet .f(a,1);
objcet .f(b,2);
由於函式f()中的a,b是由編譯器隱式傳輸的,所以我們並不能直接在函式f()中獲取到物件a,b,這時候便可以通過this指標獲取到「這個物件」,a和b。
如上所說,我們可以通過this指標獲取到當前呼叫函式的物件,所以當欄位名場相同時,可以使用this指標來區分,例如:
class testthis
public void f(int d, int e)
}
因為this指標
擁有的引用位址是呼叫改函式的物件的位址,所以this指標後面的屬性d表示物件的屬性,等號後面沒有this帶領的d時函式中的引數變數d。
因為構造器函式是用來例項化(新建)物件的,所以不存在隱式傳輸物件的情況,此時this指標表示的則是「當前物件」,此時使用this(d
)則會呼叫對應的建構函式(只能呼叫一次,且需要在函式最開頭呼叫,this()和superi()不能同時呼叫),this.e則表示當前物件的屬性e。
智慧型指標簡介
使用正常的指標 可能會遺忘歸還記憶體,而且其他的c 機制可能會打斷我們歸還的過程 智慧型指標和普通指標的區別在於智慧型指標實際上是對普通指標加了一層封裝機制,這樣的一層封裝機制的目的是為了使得智慧型指標可以方便的管理乙個物件的生命期。智慧型指標格式 ptr 最原始的智慧型指標是 auto ptr,a...
關於函式指標 簡介
函式指標說白了,函式的位址 現在看乙個簡單的 先定義乙個函式指標 void f1 就是這樣定義 指向的是乙個void型別的 假設定義了另乙個 void f2 可以 f1 f2 或者 f1 f2 直接 了 include include void f1 void f2 void main void f...
C 語言 指標簡介
指標是 c 語言中乙個重要的概念,是 c 語言中乙個重要特色,也是 c 語言的精髓 靈魂所在。正確而靈活的運用它,可以有效地表示複雜的資料結構 能動態分配記憶體 能方便地使用字串 有效而方便地使用陣列。掌握指標的應用,可以使程式簡潔 緊湊和高效。大約 40 的選擇題與指標有關。對指標的掌握程度可以反...