類成員指標

2021-08-27 16:33:38 字數 700 閱讀 2906

看到深度探索c++物件模型3.2節,其中給出了乙個判斷access section出現先後順序的模板函式如下:

templatechar* access_order( data_type1 class_type::* mem1,data_type2 class_type::* mem2)
用以下程式測試

class point3d;

int main()

得到的是: '

類似的問題也發生在ostream上面。例如以剛才定義的point3d類為基礎,做一下測試

int main()
輸出如下:

或者用如下測試程式也會輸出相同結果:

int main(){

cout

此外:由於目前的編譯器的性質,可以用類成員指標來計算出相應類例項的大小:計算出最後乙個資料成員的偏移量加上最後乙個資料成員型別所占用的記憶體空間。

總結:1.類成員指標不能做某些操作符的引數,如《和《操作符

2.類成員指標是其相應成員的偏移位址

3.可以用類成員指標計算出類例項的大小

類成員指標

類成員指標一般很少用到,使用類成員的指標與普通指標的區別在於,需要在類成員指標前面的加上類限定符,以指明是哪個類的成員指標。同樣,在初始化指標時,也只能用相應類的相應型別的成員對指標進行初始化。成員指標的應用舉例 當乙個類有多個性質相同且型別相同的函式成員時,可以使用函式表來進行函式呼叫,產生用同一...

類成員指標

看到深度探索c 物件模型3.2節,其中給出了乙個判斷access section出現先後順序的模板函式如下 templatechar access order data type1 class type mem1,data type2 class type mem2 用以下程式測試 class po...

類成員指標

首先 函式指標是指向一組同型別的函式的指標 而類成員函式我們也可以相似的認為,它是指向同類中同一組型別的成員函式的指標,當然這裡的成員函式更準確的講應該是指非靜態的成員函式。前者是直接指向函式位址的,而後者我們從字面上也可以知道 它肯定是跟類和物件有著關係的。typedef int p int,in...