c++クラス間相互参照
724 ワード
c++を使用する場合、クラスclass A、class Bが2つあります.クラスAにはclass Bのメンバー変数があり、同様にclass Bにはclass Aのメンバー変数があり、この場合、クラスの相互参照を解決するためにc++の前方宣言を使用する必要があります.解決のガイドラインは次のとおりです.
AまたはBは、ヘッダファイル(A.h)を用いて他方のヘッダファイル(B.h)を参照する方法を選択してもよく、他方のヘッダファイル(B.h)では、クラスを定義する前にclass Aを書き、BのcppファイルでAのヘッダファイルを参照する.
A.h
B.h
同時に
B.cpp
AまたはBは、ヘッダファイル(A.h)を用いて他方のヘッダファイル(B.h)を参照する方法を選択してもよく、他方のヘッダファイル(B.h)では、クラスを定義する前にclass Aを書き、BのcppファイルでAのヘッダファイルを参照する.
A.h
// A.h , #include B
#include "B.h"
class A
{
B* b;
}
B.h
// B , A
class A;
class B
{
A *a;
}
同時に
B.cpp
// B.cpp #include A, A
#include "A.h"
B::sayHello{
}