對於類的非靜態成員,每個物件都有自己的乙份拷貝,即每個物件都有自己的資料成員,不過成員函式卻是每個物件共享的。那麼呼叫共享的成員函式是如何找到自己的資料成員?答案就是用this指標,下面舉例說明:
當vbbook物件呼叫outputpages成員函式時,this指標指向vbbook物件,當vcbook物件呼叫outputpages成員函式時,this指標指向vcbook物件。在outputpage成員函式中,使用者可以顯式地使用this指標訪問資料成員。如
編譯器為了實現this指標,在成員函式中自動新增了this指針對資料成員的方法,類似於上面的outputpages方法。此外,為了將this指標指向當前呼叫的物件,並在成員函式中能夠使用,每個成員函式中都隱含乙個this指標作為函式引數,並在函式呼叫時將物件自身的位址隱含作為實際引數傳遞。例如,以outputpages成員函式為例,編譯器將其定義為:
void outputpages(cbook* this)
cout
this指標 this 指標的作用
this 指標的作用 它的作用是指向成員函式作用於的物件,所以非靜態您可以在成員函式中直接使用它來表示指向該函式所作用的物件的指標。以下示例可以說明其作用 輸出結果 20000 20000 接下來,我們看下面的 您認為輸出結果是什麼?會出錯嗎?答案是正常輸出問候。您可能對p指標為空這一事實感到好奇。...
指標變數的作用
main.c c語言學習 include 當陣列作為函式引數的時候 可以用 指標 來接收 void change int p char getname char getname2 int main int argc,const char argv change nums 執行函式,改變了陣列第0個元...
void指標的作用
最近對void指標的用法比較困惑,在網上搜了一下,稍微整理分享一下 void 指標可以指向任意型別的資料,亦即可用任意資料型別的指針對 void 指標賦值。例如 int pint void pvoid pvoid pint 不過不能 pint pvoid 如果要將 pvoid 賦給其他型別指標,則需...