这是我的代码和要求:
我有 2 个 A 和 B 类,它们没有任何继承。我用A类的一种方法调用B类的一种方法,那么B类的方法应该回调A类的方法之一来执行回调。
部分代码:
类A.h:
#include "classB.h"
class classA
{
  public:
  classA();
  classB *pClassB;
  void callClassB();
  void callBack();
};
类A.cpp:
#include "classA.h"
classA::classA()
{
  pClassB = new classB();
}
void classA::callBack()
{
  return;
}
void classA::callClassB()
{
  pClassB->callFunction();
}
类B.h:
class classB
{
  public:
  classB();
  void callFunction();
}
B类.cpp:
#include "classB.h"
classB::classB()
{
}
void classB::callFunction()
{
   // I should call classA's callback here!
}
问题是,我不能在 classB.h 中包含 classA.h,因为它会在其他地方导致一些编译问题(我无法解决)。我不能将 classB 作为 classA 的子类(如果可以,我只需要这样做classA::callBack())。那么有没有办法解决这种情况呢?
更新:这就是我修改的内容:
class classB
{
  public:
  classB(classA& pCallBack);
  void callFunction();
  void (classA::*m_callback)(void);
};
classA::classA()
{
  pClassB = new classB(*this);
}
classB::classB(classA& pCallBack)
{
  m_callback = pCallBack;
}
我试图保存指针,但也失败了。它说“从不兼容的类型分配”......它有什么问题?