Должен ли я повторять включения в.cpp и.h?

Сценарий:

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

7
задан Andrea Casaccia 24 July 2012 в 22:33
поделиться