1.this指標解答:
class obejct
};//類在後面不斷擴充
object ob;//定義物件
object ob1;
this指標其實就是 &ob 即 &ob == this,就是物件的位址. 每個物件的實體其實只包含成員變數,而不包括成員函式.那麼成員函式和變數是怎麼聯絡起來的?
物件ob.setx(1); 和ob1.set(2); 是呼叫的同乙個函式,置不過隱式的傳遞了this指標(ob的位址),顯示 ob.set(&ob,1); 而在函式呼叫時:
this.x = 1; this指標也會被加在上面. 這樣就完成了函式呼叫.
補充說明this指標: ob物件在記憶體中佔4個位元組即值存在 x變數. ***x: 00 00 00 00 //類似於這個而&ob 即ob的位址其實就是 變數x位址
即 this == &ob == &(o
b.x)
//想驗證的可以在vc下除錯下
2.引用作為引數或者返回值:
int& get(int& x);與 int get(int x);//明白他們的區別也就明白了引用
前乙個函式不會呼叫拷貝夠咱函式,其實也是傳遞的位址,從而可以更改x的值在函式外有效
3.返回指標的引用
class obejct
};返回指標的引用.即指標也不會呼叫拷貝建構函式,而是直接傳遞x位址 . object ob; int * x = get(value);// 在複製的時候還是需要呼叫拷貝建構函式的.
指標的引用( )與指標的指標( )
在下列函式宣告中,為什麼要同時使用 和 符號?以及什麼場合使用這種宣告方式?void func1 myclass pbuildingelement 論壇中經常有人問到這樣的問題。本文試圖通過一些實際的指標使用經驗來解釋這個問題。仔細看一下這種宣告方式,確實有點讓人迷惑。在某種意義上,和 是意思相似的...
指標的指標和指標的引用
1,使用指標的指標和指標的引用的原因 當我們把乙個指標做為引數傳乙個方法時,其實是把指標的複本傳遞給了方法,也可以說傳遞指標是指標的值傳遞。如果我們在方法內部修改指標會出現問題,在方法裡做修改只是修改的指標的copy而不是指標本身,原來的指標還保留著原來的值。我們用下邊的 說明一下問題 int m ...
C 中的指標 引用 指標引用
在c 指標的用處很大,可以快讀的訪問位址空間,而且本身不佔太大記憶體。指標操作在引數傳遞的時候非常方便。既可以作為傳入引數,又可以作為返回值。但是可不可作為函式的傳出引數呢?下面通過乙個例子來說明。教室裡面包含多個老師,每個老師管理多個學生 學生類 pragma once include class...