クラスの相互参照における問題
A.h
#ifndef _A_H_ #define _A_H_ #include "B.h" class A { B* m_bB; ... } #endif // _A_H_
ifndef, define, endifは重複回避
B.h
#ifndef _B_H_ #define _B_H_ #include "B.h" class B { A* m_bA; ... } #endif // _B_H_
お互いに参照していると、いつまで経っても参照が終わらなくなってしまう
#ifndef _A_H_ #define _A_H_ class B; class A { private: B* m_bB; public: A(); void foo(); void bar(); ... } #endif // _A_H_
#ifndef _B_H_ #define _B_H_ class A; class B { private: A* m_bA; public: B(A* pA); void hoge(); } #endif // _B_H_
includeはしていないのだが、うーん、なんかよくわからんな…