このコードは特別なことは何もしません。前方宣言の問題を示すのはほんの一部です。簡単な質問: なぜ機能しないのですか? また、強制的に機能させるにはどうすればよいですか?
class A;
class B {
A obj;
public:
int getB() const {
return 0;
}
void doSmth() {
int a = obj.getA();
}
};
class A {
B obj;
public:
int getA() const {
return 1;
}
void doSomething() {
int b = obj.getB();
}
};
このコードは私にエラーを与えます:
error C2079: 'B::obj' uses undefined class 'A'
error C2228: left of '.getA' must have class/struct/union