supongamos que tengo una cabecera foo.h
así:Cómo volver a incluir encabezado en aplicación
#ifndef FOO_H
#define FOO_H
#include <string>
#include "non_standard_class.h"
std::string foo(MyClass a);
...
#endif
y la implementación foo.cpp
habrá
#include <vector>
#include "foo.h"
std::string foo(MyClass a)
{
std::vector<int> x;
MyClass b;
...
}
es una buena pratice volver a incluir <string>
y non_standard_class.h
en foo.cpp
? El punto es: si leo foo.cpp
, ¿cómo puedo entender de dónde viene MyClass? Necesito mirar foo.h
pero será más difícil.
¿Por qué sería una buena práctica escribir todo dos veces?Eso sería una pesadilla de mantenimiento. – jwueller
Es realmente bueno, y no esencial, práctica si no vas a incluir foo.h en foo.cpp ... – Goz
@Goz: Pero en general, no incluir 'foo.h' en' foo.cpp' es en sí mismo práctica cuestionable. –