c++クラス間相互参照


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
//  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{
    
}