C++如何在A类中定义一个指针指向B类的一个成员函数
我做的是MFC,在App类里面我想定义一个函数指针指向另一个类的成员函数,我应该如何做,我想定义一个public函数,可以对这个函数指针进行设置,如何定义?还想在App类...
我做的是MFC,在App类里面我想定义一个函数指针指向另一个类的成员函数,我应该如何做,我想定义一个public函数,可以对这个函数指针进行设置,如何定义?还想在App类里面定义一个接口函数,在外面就可以调用这个函数,这些都如何实现?
展开
3个回答
展开全部
直接定义即可。
比如已有一个类class
A,
再定义一个类class
B,这样在B的定义中,就可以有一个A*类型的成员变量。
示例代码一:
class A
{private: int a;public: int c;public:
A(int i)
{
a = i;
};
int Fun(int b)
{
return ((a * c) + b);
};
};
示例代码二:
int (A::*pFun)(int) = A::fun;
或int A::*pFun(int);
pFun = A::fun;
比如已有一个类class
A,
再定义一个类class
B,这样在B的定义中,就可以有一个A*类型的成员变量。
示例代码一:
class A
{private: int a;public: int c;public:
A(int i)
{
a = i;
};
int Fun(int b)
{
return ((a * c) + b);
};
};
示例代码二:
int (A::*pFun)(int) = A::fun;
或int A::*pFun(int);
pFun = A::fun;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
typedef int (CallBack)(void* aParam);
class B
{
public:
static int fun(void* Param){};
};
class A
{
A(){m_CallBack = B::fun;}
public:
CallBack* m_CallBack;
};
你这种情况一般都会使用观察者模式来做Eg
class AObserver
{
public:
virtual void OnANotification() = 0;
}
class A
{
public:
void SetObser(AObserver* obser)(observer = obser;}
private:
AObserver* observer;
}
class B : public AObserver
{
public
void OnANotification() {}
}
希望对你有帮助
class B
{
public:
static int fun(void* Param){};
};
class A
{
A(){m_CallBack = B::fun;}
public:
CallBack* m_CallBack;
};
你这种情况一般都会使用观察者模式来做Eg
class AObserver
{
public:
virtual void OnANotification() = 0;
}
class A
{
public:
void SetObser(AObserver* obser)(observer = obser;}
private:
AObserver* observer;
}
class B : public AObserver
{
public
void OnANotification() {}
}
希望对你有帮助
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询