C++ では、すべての型を使用する前に定義する必要があるため、ヘッダー ファイルを正しい順序でインクルードすることが重要になります。罰金。しかし、私の状況はどうですか:
Bunny.h
:
クラスバニー { ... プライベート: Reference<Bunny> 親; }
コンパイラは、独自のクラス定義で使用する時点で技術的に完全に定義されていないため、不平を言います。私は何か愚かなことをしたからです(関係のない)。Bunny
Reference
ポインタ型を取るようにテンプレート クラスを書き直す以外に(この場合、 の前方宣言を使用できますBunny
)、これを解決する方法がわかりません。
助言がありますか?
EDIT:私Reference
のクラス(XObject
データモードオブジェクトの基本クラスです):
テンプレート <クラス T = XObject> クラス リファレンス { 公衆: Reference() : m_ptr (NULL) {} 参照(T* p) { m_ptr = p; if (p != NULL) ((XObject*)p)->ref(); } 〜リファレンス() { もし (m_ptr) { ((XObject*)m_ptr)->deref(); } } // ... 代入、比較など プライベート: T* m_ptr; };
編集:これはうまくいきますが、問題は別のものでした。助けてくれてどうもありがとう!