C ++如何避免循环包含?

时间:2015-04-20 15:46:01

标签: c++ include header-files

我有两节课。

首先 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类。 有没有像这样的循环包含问题的解决方案?

1 个答案:

答案 0 :(得分:1)

A.h文件中,而不是包含B.h使用前向声明:

class B;