c 指向物件成員的指標

2021-08-19 22:25:50 字數 644 閱讀 7169

在c++中類是抽象的,沒有實際記憶體,而物件是具體,是占有記憶體的,因此物件有位址,存放物件的起始位址的指標變數就是指向物件的指標變數。物件中的成員也是占有記憶體的,所以,存放物件成員的起始位址的指標變數就是指向物件成員的指標變數。

1.指向物件資料成員的指標

int *p1;   //定義指向整形資料的變數

p1 = &t1.hour;     //把hour的位址賦給p1

cout<<*p1<

前提,hour是time類的公共的整形資料,則可以在類外通過指向物件資料成員的指標變數訪問物件資料成員hour;

2.指向物件成員函式的指標

定義指向公用成員函式的指標變數的一般形式為

資料型別名 (類名::*指標變數名)(引數列表);

當它指向成員函式時,只需把公用成員函式的入口位址賦給乙個指向公用成員函式的指標變數。

指標變數名=&類名::成員函式名

舉例,用不同方法輸出時間的時,分,秒

#include using namespace std;

class time

void show();

int hour,minute,second;

};void time::show()

C 指向物件成員函式的指標

在具體介紹指向成員函式的指標之前先簡單介紹一下指向成員函式的指標與指向普通函式的指標的區別 指向成員函式的指標不僅要匹配將要指向的函式的引數型別,個數和返回值型別,還要匹配指向的成員函式所屬的類 指向普通函式的指標變數定義如下 返回值型別 指標名 而指向成員函式的指標的定義如下 返回值型別 類名 指...

物件陣列和指向物件的指標 指向類成員的指標

1 物件陣列 物件陣列是指數組元素為物件的陣列。這種物件陣列與其它資料 型別的陣列定義方式相同。如 x a 10 它建立了乙個物件陣列a,有10個陣列元素,每個陣列元素a i 都是乙個物件,所以,需要10次呼叫建構函式。c 語言不允許初始化物件陣列,所以要建立乙個類的物件陣列,這個類必須具備以下三個...

C 之指向成員的指標

指標是指指向一些記憶體位址的變數,可以是資料的位址,也可以是函式的位址。同樣,c 的成員指標也遵從同樣的概念。但是,c 的成員指標只能指向類內部的成員,並且在類內部是沒有位址的 因此,成員指標要求選擇乙個物件的同時間接引用成員指標。以下的例子可以說明如何建立和使用指向資料成員的指標 include ...