他のクラスの値を返すことができる C++ クラス関数を実行しようとしています。クラスAが最初に定義されている場合、コードは機能しますが、いじり回したくないコードが他にもあります。クラスAの何らかの前方宣言が必要だと思いました。
この作業を行うには、どのような事前宣言が必要ですか? 私のコードはすべて1つのファイルにあります。クラスを複数のファイルに適切に分割してそれらをプロジェクトに含めると、この問題は消えますか、それとも VC++ コンパイラに違いはありますか?
以下の準擬似コード。
// forward declaration
class A;
// class deifinitions
class B {
private:
int testvalue;
public:
void settestvalue(A &Aobj);
}
void B::settestvalue(A &Aobj) {
testvalue = Aobj.settestvalue();
}
class A {
private:
int test = 10;
public:
int testvalue();
};
int A::testvalue() {
return test;
}
// mainloop
A Aobj;
B Bobj;
Bobj.settestvalue (Aobj);