シナリオ:
foo.h:
#include <vector>
class foo {
public:
std::vector<int>* getVector();
/* ... other methods declarations ... */
}
foo.cpp:
#include "foo.h"
#include <vector>
/* ... other methods definitions using std::vector ... */
std::vector<int>* foo::getVector() {
return new std::vector<int>();
}
.cppは、ヘッダーで将来変更される可能性のあるものから独立している必要があります。何らかの理由でクラスのインターフェースが変更され、からの依存関係を<vector>
排除できる場合、.cppの他のメソッドもその包含を失うリスクがあります。
<vector>
.cppと.hの両方に含めることを繰り返すのは正しいですか?この方法は理にかなっていますか、それともヘッダーに含まれているものだけに頼るべきですか?