クラスの相互参照における問題
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はしていないのだが、うーん、なんかよくわからんな…