我有这样的情况
啊
#ifndef _CLASSA
#define _CLASSA
class B;
class A {
virtual void addTo(B*) {}
};
#endif
溴化氢
#ifndef _CLASSB
#define _CLASSB
#include "A.h"
class B : public A {
B();
void addTo(B* b) {
// blah blah blah
}
};
#endif
B.cpp
#include "B.h"
B::B() : A() {}
主文件
#include "B.h"
int main() {
A* b = new B();
B* d = new B();
b->addTo(d);
}
该项目将无法编译。如果我在 A 标头中转发声明 B,编译器会抱怨 Bh 中的类的期望 如果我在 Ah 中包含 Bh 标头,编译器将无法解析基类。这可能吗?