1. 程式人生 > >關於指向類成員函式的函式指標

關於指向類成員函式的函式指標

 首先,關於宣告普通函式指標

返回值型別 (*指標名)(引數);

如:int (*p) (int); //宣告一個指向返回值為int,引數型別為int的函式指標

更常用的宣告方法 typedef int(*p)(int); //聲明瞭一個函式指標型別p

指向類函式指標宣告:

關於指向類的函式指標,都要加上類的作用域

如: int (A::*p)(int); //表示指向A類返回值為int,引數型別為int的函式指標

#include<iostream>

usingnamespacestd;

class A

{

public:

int speak(int mm,int nn){

return (mm-nn);

    };

};

int main()

{

int b=9;

int c =0;

int (A::*pmf)(int ,int);//指標的宣告

    pmf = &A::speak;//指標的賦值,關於&,大神們的解釋是類函式名不會隱式轉換,這裡不做深究

A a; //生成物件

cout<<(a.*pmf)(b,c);//在使用指向類的函式指標時,一定要有物件

return0;

}


ps:以上程式碼風格上十分不好,只關注思想即可