C++如何在A类中定义一个指针指向B类的一个成员函数

2025-01-02 04:00:14
推荐回答(3个)
回答1:

1、直接定义即可。比如已有一个类class A, 再定义一个类class B,这样在B的定义中,就可以有一个A*类型的成员变量。
比如
class B
{
A * a;

};
这里的B::a就是一个A*类型的指针。
2、需要注意的是,要使用这种形式的定义,要么A的定义在B的上方,要么在B定义前加一个A类的声明。

class A;
class B
{
A * a;

};

回答2:

直接定义即可。
比如已有一个类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;

回答3:

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() {}

}

希望对你有帮助