this只能用於非靜態成員函式內部 this小題

2021-10-12 08:49:47 字數 835 閱讀 6849

下列關於this指標的敘述中,正確的是( d )。

a) this指標是乙個隱含指標,它隱含於類的成員函式中

b) 只有在使用this時,系統才會將物件的位址賦值給this

c) 類的友元函式也有this指標

d) this指標表示了成員函式當前操作的資料所屬的物件

解析] this指標是成員函式所屬物件的指標,它指向類物件的位址;它隱含於每個類的非靜態成員函式中;this指標只能在類的成員函式中使用,它指向該成員函式被呼叫的物件;靜態成員函式沒有this指標,因為類中只有乙個靜態成員函式例項,使用this指標無意義。

下列關於this指標的敘述中,正確的是( )。

a.任何與類相關的函式都有this指標

b.類的成員函式都有this指標

c.類的友元函式都有this指標

d.類的非靜態成員函式才有this指標

正確答案

d答案解析

[解析] 此題考查的是this指標的使用。類的每乙個非靜態成員函式都有乙個隱含的常最指標,即this指標。類的靜態成員函式不能含有this指標,因為this指標是個指向本物件的指標。

下列關於this指標的描述中,正確的是( )。

a) 類的成員函式都有this指標

b) 類的友元函式都有this指標

c) 任何與類相關的函式都有this指標

d) 類的非靜態成員函式都有this指標

正確答案

d答案解析

[解析] this作用域是在類內部,當在類的非靜態成員函式中訪問類的非靜態成員時,編譯器會自動將物件本身的位址作為乙個隱含引數傳遞給函式。另外,全域性函式和靜態函式都不能使用this指標。所以答案為d。

C 靜態成員函式訪問非靜態成員

如果類沒有被建立,則沒有對應的成員,也就無法訪問 下面這種方法需要先建立類,並將類作為引數傳遞給靜態成員函式才能訪問。include using namespace std class person class student public person static void get age st...

靜態成員函式和非靜態成員函式的區別?

乙個靜態成員函式不與任何物件相聯絡,故不能對非靜態成員進行預設訪問。它們的根本區別在於靜態成員函式沒有this指標,而非靜態成員函式有乙個指向當前物件的指標this。例如 1 classsc2 89void f sc s 10函式nsfn 可被認為它宣告為void sc nsfn sc this i...

靜態成員函式與非靜態成員函式的區別

先放上幾個小例子 1 static 修飾成員變數 靜態變數,是在編譯階段就分配空間,物件還沒有建立時,就已經分配空間。靜態成員變數必須在類中宣告,在類外定義。靜態資料成員不屬於某個物件,在為物件分配空間中不包括靜態成員所佔空間。class data 定義的時候 不需要加static int data...