类成员函数指针引用

来源:互联网 发布:农村淘宝服务费如何扣 编辑:程序博客网 时间:2024/06/06 00:02

写一点关于在B类中引用A类中的成员函数指针问题

由于在实际使用同中,创建一个通用的B类,在B类中某个时刻点,但又想做成一个通用的,而不是显示的被A类绑死。也就是让B类看起来很灵活,离开谁都可以自己转。ok看代码。

定义一个类A

class A
{
public:
A()
{
int t;
t= 0;
}
int fun1(int i){//回作为函数指针注册到类B中,在某个时刻点,回调过来。
return i;
};
};


template <class T> //定义一个类模板B
class B
{
public:
B()
{
int t;
t= 0;
}
B(T a){


int t;
t= 0;
}


typedef int (T::*pFunc)(int);
void regFunc(T *obp, pFunc pf){//注册函数指针
_obj = obp;
_pf = pf;
}


void sayHello()//该时刻下回调注册的函数
{
cout << (_obj->*_pf)(10);
}


private:
T* _obj;
pFunc _pf;
};


使用:

A a; //定义类A
B<A> b; //定义模板类b
b.regFunc(&a,&A::fun1);//注册A的func1函数指针
b.sayHello(); //显示调用sayHello,该函数可以在任意时刻下调用。

原创粉丝点击