Saltar al contenido

¿Cuál es la diferencia entre un archivo .cpp y un archivo .h?

Esta es el arreglo más válida que te podemos dar, sin embargo mírala pausadamente y analiza si se puede adaptar a tu trabajo.

Solución:

El sistema de compilación de C++ (compilador) no conoce la diferencia, por lo que todo es una de las convenciones.

La convención es que los archivos .h son declaraciones y los archivos .cpp son definiciones.

Es por eso que los archivos .h están #incluidos: incluimos las declaraciones.

El archivo .cpp es la unidad de compilación: es el archivo de código fuente real que se compilará (en C++).

Los archivos .h (encabezado) son archivos que se copiarán/pegarán virtualmente en los archivos .cpp donde aparece la instrucción del precompilador #include. Una vez que el código de los encabezados se inserta en el código .cpp, puede comenzar la compilación del .cpp.

Un encabezado (.h, .hpp…) el archivo contiene

  • Definiciones de clase ( class X ... ; )
  • Definiciones de funciones en línea ( inline int get_cpus() ... )
  • Declaraciones de funciones ( void help(); )
  • Declaraciones de objetos ( extern int debug_enabled; )

Un archivo fuente (.c, .cpp, .cxx) contiene

  • Definiciones de funciones ( void help() ... o void X::f() ... )
  • Definiciones de objetos ( int debug_enabled = 1; )

Sin embargo, la convención de que los encabezados se nombran con un .h el sufijo y los archivos de origen se nombran con un .cpp el sufijo no es realmente necesario. Uno siempre puede decirle a un buen compilador cómo tratar un archivo, independientemente de su sufijo de nombre de archivo ( -x para gcc. Me gusta -x c++ ).

Los archivos fuente contendrán definiciones que deben estar presentes solo una vez en todo el programa. Entonces, si incluye un archivo fuente en algún lugar y luego vincula el resultado de la compilación de ese archivo y luego el del archivo fuente en sí, entonces, por supuesto, obtendrá errores del enlazador, porque esas definiciones ahora aparecen dos veces: Una vez en el archivo de origen incluido y, a continuación, en el archivo que lo incluía. Por eso tuviste problemas para incluir el .cpp expediente.

Si guardas alguna sospecha y capacidad de avanzar nuestro sección eres capaz de añadir una anotación y con mucho gusto lo observaremos.

¡Haz clic para puntuar esta entrada!
(Votos: 3 Promedio: 4.7)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *