質問

循環ヘッダーファイル参照を回避するために、C ++で前方参照/宣言を行うにはどうすればよいですか?

ヘッダーファイルに#ifndefガードがありますが、メモリから、この前方参照するものが必要であることがわかります-<!> gt; <!> lt;しかし、どのように覚えていない。

役に立ちましたか?

解決

クラスを含めずにクラスを事前宣言します。例:

//#include "Foo.h" // including Foo.h causes circular reference
class Foo;

class Bar
{
...
};

他のヒント

あなたが話していることの正しい用語は、<!> quot; forward宣言<!> quot;だと思います。 <!> quot;前方参照<!> quot;少し混乱するでしょう。

#ifndefガードがある場合、循環ヘッダーファイルの参照は取得されません。それがポイントです。

前方参照は、ポインターまたは参照によってのみ使用するオブジェクトの#include(ing)ヘッダーファイルを回避するために使用されます。ただし、この場合、循環参照の問題を解決しているのではなく、適切な設計を実践し、必要のない詳細から.hファイルを切り離しています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top