私は2つのクラスをクラスAとBと呼びましょう。これらのクラスの内部では、関数の引数として参照があります。私はこのようにそれを宣言転送しようとすると:前方宣言クラス、クラスの再定義
// A.h (Header guarded)
namespace ns {
class B { // Attempt to forward declare B
public:
int getRand();
};
class A {
public:
float a, b;
void aFunc(B &b);
};
}
// B.h (Header guarded)
namespace ns {
class A { // Attempt to forward declare A
public:
float a, b;
};
class B {
public:
void bFunc(A &a);
int getRand();
};
}
事は、私がこれを行うとき、私は'class' type redefinition
エラーが発生しました、です。私は解決策を探していましたが、解決策にはまだ達していません。私はこれを正しくやっていますか?あなたは私がどこに間違っているのか教えていただけますか?
これはあなたがそこに来たわけではありません! 'クラスB;'となります。 – jrok
@jrok hmmしかし、AからBの変数にアクセスする必要がある場合はどうすればよいですか?それがなければ、 'incomplete type is not allowed'というエラーが生成されます。 – Greffin28
これはクラスによって異なります。それらについてもっと教えてください。何を達成したいですか? – jrok