私はそのような状況にあります
ああ
#ifndef _CLASSA
#define _CLASSA
class B;
class A {
virtual void addTo(B*) {}
};
#endif
Bh
#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() {}
main.cpp
#include "B.h"
int main() {
A* b = new B();
B* d = new B();
b->addTo(d);
}
プロジェクトはコンパイルされません。AヘッダーでBを前方宣言すると、コンパイラはBhのクラスの期待値について文句を言います。AhにBhヘッダーを含めると、コンパイラは基本クラスを解決できません。これは可能ですか?