c 物件指標

2021-07-11 13:40:08 字數 514 閱讀 6273

c++指向成員函式的指標好容易錯啊!

#include

using namespace std;

class time

void showtime()

主要看

void(time::*p3)();

p3=&time::showtime;

(t2.*p3)();

這幾串**。

第一行:定義指向time類公用成員函式的指標變數p3,void是函式型別,(time::*p3)是函式名,最後"()",表面這是個函式。

第二行:『&』後面是函式名,也就是time::showtime,千萬別寫成time::showtime(),這樣寫就不是函式名了。

第三行:一定是(t2.*p3)();如果是t2.*p3();因為'()'和

'.'運算優先順序都比'*'要高,就會出現語法錯誤(指向p3()這個函式,然而不可能有這個函式)。

在這三行**裡面,一定要指明是哪個類(time)的成員函式(通過'::'作用域運算子)

C 物件與指標

物件與指標 class a int y privated int x 1,物件引用成員 a a a.fun a.y 0 a.x 0 2,物件指標引用成員 a b a p b p fun p y 0 3,this指標 指向當前操作物件的指標多跟無名物件打交到 4,一般成員變數指標 a dint a p...

C 之物件指標

物件指標 1,指向物件的指標 time pt time t1 pt t1 乙個物件儲存空間的起始位址就是物件的指標,可以定義乙個指標變數,用來存放物件的位址,這就是指向物件的指標變數。訪問物件成員 pt hour pt gettime 2,指向物件成員的指標 1 指向物件資料成員的指標 int p1...

c 的物件指標

在處理物件上new和malloc有著本質的不同.new能自動呼叫相關物件的建構函式 而使用malloc只是單純的分配記憶體,不會去呼叫相關物件的建構函式 class coordinate class line line line int x1,int y1,int x2,int y2 m coora...