が含ま入れ子になったクラスは、私はこのようになりますクラスを持つヘッダ
が// Node.hpp
template<typename T>
class List<T>::Node {
...
};
私の質問があり、どのような各ファイルに含める必要がありますか、どこに#include
を配置しますか?
最も簡単な方法は、Node.hpp
の末尾にList.hpp
を含め、Node.hpp
には何も含めないことです。しかし、これによりNode.hpp
は完全なファイルではなくなります(IDEなどで開くと、List<T>
の定義がないために多くのエラーが発生する)。また、ファイルの末尾に#include
を置いてもよいかどうかはわかりません。各ファイルを仮定し
がガード#define
を含め、独自のを持って、私はまた、(のIDEを幸せにするために)Node.hpp
の上部にList.hpp
が含まれ、その後、再びList.hpp
の底にNode.hpp
が含まれるが、それはだ場合、私は知らないことができます良い考え。
あなたの疑問にお答えするには:同じファイルを2回含めると、あなたはどこでも好きな場所に '#incldue 'を置くことができます。 – MikeMB
あなたが提案したことを行うことができます - 必要に応じて他の.hまたは.cppファイルに選択的に含めることもできます。これにより、node.hppを実際に使用している場所だけに変更するコンパイルの爆発半径をlist.hpp – xaxxon
を含むすべてではなく減らすことができます。この配置例のライブ例は次のとおりです。https://godbolt.org/g/5c4HC7 – xaxxon