關於指向類成員函式的函式指標
阿新 • • 發佈:2019-02-10
首先,關於宣告普通函式指標
返回值型別 (*指標名)(引數);
如: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:以上程式碼風格上十分不好,只關注思想即可