假设我有 2 个课程:
// a.h
#ifndef A_H
#define A_H
#include "b.h"
class A {
public: void a() {
B* b = new B(this);
}
}
#endif
// b.h
#ifndef B_H
#define B_H
#include "a.h"
class B {
public: B(A* a) {
// ...
}
}
#endif
此代码将引发错误A has not been declared
,因为 A 类引用了 B 类,而 B 类又引用了尚未在 ah 中声明的 A 类。
那么如何将 A 的实例传递给 B 呢?