C 學習 物件模型之 this指標

2021-10-06 00:26:00 字數 665 閱讀 7444

在 c++ 中,每乙個物件都能通過this指標來訪問自己的位址。this指標是所有成員函式的隱含引數。因此,在成員函式內部,它可以用來指向呼叫物件。this指標針對物件。對於非成員函式,靜態函式和友元函式不能使用this指標,因為他們指標所有物件。this指標只針對某乙個物件。

多繼承和多型的this指標調整

#include "stdafx.h"

#include #include #include using namespace std;

class base

};class a :virtual public base

};class b :virtual public base

};class derived :public a, public b

};int main()

在這裡列印了派生類和基類的this指標,對於多型編譯器會自動調整物件位址,譬如a *a = d; 編譯器會把d物件記憶體中屬於a物件的首位址賦值給a。執行如下:this指標其實就是物件的首位址,以隱藏引數的形式傳遞給普通成員函式。

C 物件模型和this指標(C 學習記錄)

4.3.1 成員變數和成員函式分開儲存 在c 中,類內的成員變數和成員函式分開儲存 只有非靜態成員變數才屬於類的物件上 class person 非靜態成員變數佔物件空間 int ma 靜態成員變數不佔物件空間 static int mb 函式也不佔物件空間,所有函式共享乙個函式例項 void fu...

c 物件模型和this指標

1.成員變數和成員函式分開儲存 在c 中類內的成員變數和成員函式分開儲存,只有非靜態的成員變數才屬於類的物件上 c 編譯器會給每個空物件也分配乙個記憶體空間,是為了區分空物件佔記憶體的位置 this指標是隱含每乙個非靜態成員函式內的一種指標 this指標不需要定義,直接使用即可 this指標指向被呼...

c 物件模型和this指標

成員變數和成員函式分開儲存 類內的成員變數和成員函式分開儲存 只有非靜態成員變數才屬於類的物件上,靜態成員變數以及函式都不屬於物件 空物件占用記憶體空間為1 c 編譯器會給每隔空物件也分配乙個位元組空間,是為了區分空物件佔記憶體的位置 每個空物件也應該有乙個獨一無二的記憶體位址 this指標的概念 ...