この質問は役に立ちましたか?When to use forward declaration?ですが、これは説明的ではありません。C++フォワード宣言を使用すべきですか?
私のシナリオは、通常、クラスメンバーまたは関数の引数のいずれかとして別のクラスへのポインタを使用しているので、ヘッダーに必要なのは前方宣言です(ブーストを使用する場合は、 shared_ptrは前方宣言を使用することと互換性がありますか?)。現在、私はヘッダだけを含んでいますが、前方宣言を使うべきかどうかは疑問です。
私の質問は、クラスの前方宣言を使用できる場合、はですか?私はこの質問が主観的ではないことを期待していますが、ベストプラクティスの答えがない場合、前方宣言の賛否両論は何ですか?ただ、(私は今、それらを使用しますがスイッチを考慮していないよ)のshared_ptrの問題に拡大する
UPDATE
。もし私がそれらを使用するなら、私はクラスの内部でshared_ptr型をtypedef'ingする習慣を使用すると思います。例:
このように思えば、ものすごく混乱するかもしれません。フォワード宣言に問題があるのでしょうか?もしそうなら、簡単な回避策がありますか?
答えを完了するには:はい、 'boost :: shared_ptr'は前方宣言でうまく動作します –
これは速く問題を回避します。はい、間違いなく含むことを前提にしています。 –