C 中關於this指標

2021-10-03 19:12:15 字數 744 閱讀 3782

在學習完c語言之後,很大的感覺就是指標是貫穿c語言的核心,但是接觸到c++後,發現很多都是封裝好的,直接用就可以。其中有一塊問題就是,通過函式去呼叫類的成員,**上好像是直接訪問的,但是又有很多問題,**為啥這個類裡面的函式可以直接訪問這個類裡面的成員呢?**這就是我們需要關注的this指標。

首先來看下面這段**

class

student

void

display()

~student()

};

這是個類的構造,其中關於這個函式

void

display()

在學習c語言中看到沒有引數傳遞進來,我們會認為這個函式是沒有引數的。但是在這個函式中卻列印出來了name number age 這三個引數,這就讓人覺得奇怪,這個引數是**來的呢?

很多時候,我們看不到的不代表沒有,c++語言的強大之處在於其強大的封裝行,很多東西都被隱藏起來了,就比如這裡的this指標。

我們將這個函式稍加修改

void

display()

這個結果執行出來和上面的一模一樣。

這就說明有個隱藏的this指標是指向這個例項化的類的例項的,只不過是寫法上省略了罷了。

需要注意的是,這個this指標是由編譯器自動生成的,程式設計師不能將這個this指標寫在函式中,編譯器會報錯。

關於c 中的this指標

記憶中,初識c 中的this指標的時候,根本不知道它是什麼,有什麼作用。再識,就知道了它的作用,也掌握了它背後的東西。this指標,就是乙個指向當前物件的指標。我們知道,定義出乙個類,它在記憶體中是不佔 空間的,只有定義了該類型別的物件時,系統就會為該物件分配一段儲存空間,這段空間 裡只儲存成員變數...

關於c 中的this指標

記憶中,初識c 中的this指標的時候,根本不知道它是什麼,有什麼作用。再識,就知道了它的作用,也掌握了它背後的東西。this指標,就是乙個指向當前物件的指標。我們知道,定義出乙個類,它在記憶體中是不佔 空間的,只有定義了該類型別的物件時,系統就會為該物件分配一段儲存空間,這段空間 裡只儲存成員變數...

C 中關於指標陣列

汗乙個,今天上午因為 define n 5 後面加上雙引號了,找了半天錯誤 字面意思來講,陣列裡面每乙個元素都是指向某一型別物件的指標 由於指標陣列物件每乙個元素的型別為t t a new t 所以,指向這個陣列物件的元素物件的指標的型別為t 如下 include stdafx.h include ...