Algunas clases, como excepciones o plantillas, solo necesitan el archivo de encabezado (.h), a menudo no hay un .cpp relacionado con ellas.¿Es una buena práctica crear siempre un .cpp para cada .h en un proyecto de C++?
He visto algunos proyectos (para algunas clases) no hay archivos .cpp asociados a los archivos de encabezados, tal vez porque la implementación es tan corta que se hace directamente en .h, o tal vez para otra razones, como clases de plantilla, donde es obligatorio incluir la implementación en el encabezado.
¿Cuál es su opinión, si una clase es demasiado corta, podría evitar crear un archivo .cpp y escribir el código directamente en el archivo de encabezado? Si el código está escrito en el archivo de encabezado, ¿debería incluir un .cpp vacío para que los archivos en el proyecto permanezcan consistentes?
Realmente no estoy de acuerdo, el código escrito dentro de un encabezado debe compilarse tantas veces como esté incluido, mientras que debe compilarse solo una vez si está dentro de un archivo fuente (.c). Sin embargo, estoy de acuerdo en que es bastante conveniente y el tiempo de compilación no es un problema importante para mí. – Ben
@Ben, la suposición sería que cualquier código que se compilaría en el archivo h sería un código de tamaño en línea (o al menos un código que podría agregarse a un encabezado precompilado). Por lo tanto, el tiempo de compilación para el archivo h no sería un problema. – kidnamedlox
@kidnamedlox: Exactamente. @Ben: si incluye código de cualquier tamaño que no sea el que debe contener, acepto que un archivo .cpp es una buena idea. Solo cuando el código es muy pequeño, creo que poner un archivo .cpp vacío solo por un archivo .cpp no es una buena práctica. –