我有两节课。
首先 A.h
#ifndef A_H
#define A_H
#include "B.h"
class A
{
public:
A(B* pair) :myPair(pair){};
void checkPair();
private:
B* myPair;
};
void A::checkPair()
{
myPair->checkPair();
}
#endif
第二 B.h
#ifndef B_H
#define B_H
#include "A.h"
class B
{
public:
B(A* pair) :myPair(pair){};
void checkPair();
private:
A* myPair;
};
void B::checkPair()
{
myPair->checkPair();
}
#endif
编译器告诉我他无法识别B.h文件中的A类。 有没有像这样的循环包含问题的解决方案?
答案 0 :(得分:1)
在A.h
文件中,而不是包含B.h
使用前向声明:
class B;