Сценарий:
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? Имеет ли смысл такая практика или стоит полагаться только на внесенные в шапку включения?