--編集-混乱して申し訳ありませんが、コピーアンドペーストではなく、このコードをすばやく入力したので、実際にはコードで#ifndef A_H#defineA_Hを実行します。以下のコードを変更して、次のことを示しました
-編集の終了-
それぞれが他のクラスのインスタンスへのポインタを含む2つのクラスがありますが、これは私にとって問題を引き起こしています。私のコードは次のようになります
// A.h
#ifndef A_H
#define A_H
class B; // compiler error here
class A
{
B* foo;
// other members and functions
};
#endif
// A.cpp
#include "A.h"
#include "B.h"
/*
declare functions and use methods in both A and B
*/
// B.h
#ifndef B_H
#define B_H
class A;
class B
{
A** bar;
// other stuff
};
#endif
//B.cpp
#include "A.h"
#include "B.h"
/*
declare functions and use methods in both A and B
*/
ヘッダーファイルで他のクラスを前方宣言してから、cppファイルに他のファイルをインクルードすると機能すると言われましたが、マークされた行に「'structb'の前方宣言」というエラーが表示されます。
誰かが私が間違っていることを教えてもらえますか?