從上篇博文,我們已經知道了成員變數與成員函式是分開儲存的,即每乙個非靜態成員函式只會誕生乙份函式例項,也就是多個同型別的物件會共用一塊**,那麼這塊**是如何區分哪個物件在呼叫它呢?
c++通過this 指標指向呼叫成員函式的物件來解決這個問題。
this指標隱含在每個非靜態成員函式內的一種指標。無需定義,直接用即可。
this 的用途:
1.區分同名形參和成員變數
class person
int age ;
}2.this返回物件本身的例子
返回型別是值傳遞;
返回型別是引用:
面對下面這個函式他們有一些差異:
差異如下:
1.返回值是值傳遞時,屬於拷貝建構函式的呼叫時機(值傳遞的方式返回區域性物件),
2.當返回值時引用時,每次返回的都是this解引用,而this指標指向呼叫該成員函式的物件,也就是p2,所以每次呼叫該函式都返回p2物件本身,因此三次對該成員函式的呼叫就對p2改變了三次所以最後的p2.age的值就為50.
C 之物件指標
物件指標 1,指向物件的指標 time pt time t1 pt t1 乙個物件儲存空間的起始位址就是物件的指標,可以定義乙個指標變數,用來存放物件的位址,這就是指向物件的指標變數。訪問物件成員 pt hour pt gettime 2,指向物件成員的指標 1 指向物件資料成員的指標 int p1...
《物件導向程式設計 C 》指向物件的指標
class c void f c intmain void f c c 本例展示了物件c1和物件引用c使用成員選擇操作符的語法,成員選擇運算子只能用於物件和物件引用。而要通過指標來訪問成員,必須使用指標操作符 class c void f c intmain void f c p 在本例中,將乙個指...
物件導向c 之繼承
物件導向三大機制包括 1.封裝,隱藏內部實現。2.繼承,復用現有 物件導向最顯著的特徵 3.多型,改寫物件行為。繼承,是一種復用的手段。是從先輩處得到屬性和行為特徵。類的繼承就是新的類從已 有 的類那裡得到已有的特徵。類成員的訪問限定有三種 public,protected,private,在類外可...