C++之指向物件成員函式的指標
1. 普通函式的指標變數定義
資料型別名 (*指標變數名)(引數列表);
例如:void (*p)( ); //p指向void型函式的指標變數;
p = fun; //fun入口地址賦予p;
(*p)( ); //呼叫fun函式;
2. 指向物件成員函式的指標變數[指向物件成員函式的指標變數與普通函式的指標變數的根本區別:前者為類的成員]
指標變數型別與右側函式匹配要求:
1)引數型別及個數相同;
2)返回型別相同;
3)所屬的類相同。
定義:資料型別名 (類名::*指標變數名)(引數列表);
指標變數名 = &類名::成員函式名;
例如:void (Time::*p)( );
p = &Time::fun;
(t1.*p)( );
注:入口地址寫為:&類名::成員函式名,而非&物件名.成員函式名(即t1.fun)。
原因:成員函式不是存放在物件的空間中,而是在物件外的空間,多個物件公用同一段函式程式碼,故賦給指標p的應
是公共函式程式碼段的入口地址。