2010-07-19 12 views

Respuesta

12

Los archivos de encabezado son archivos reales almacenados en el sistema de archivos, referenciado por nombre de archivo y #include 'd en otros archivos (al menos en C/C++ u otros idiomas utilizando el preprocesador de macros M4). Los archivos de encabezado generalmente agrupan fragmentos de código que son todas partes interdependientes del mismo elemento específico juntas. Por ejemplo, un juego puede tener un archivo de encabezado para todas sus representaciones gráficas. Los espacios de nombre, por otro lado, son un elemento del lenguaje de programación: no existen como un objeto de sistema de archivos, sino más bien como una designación dentro del código que le dice al compilador que ciertas cosas están dentro de ese espacio de nombres. Los espacios de nombre típicamente agrupan las interfaces (funciones, clases/estructuras, tipos) de elementos similares (pero no necesariamente interdependientes). Por ejemplo, el espacio de nombres std en C++ contiene todas las clases y funciones de la Biblioteca estándar.

3

Un archivo de encabezado es un archivo que está destinado a ser incluido por los archivos fuente. Por lo general, contienen declaraciones de ciertas clases y funciones.

Un espacio de nombres habilita el código para categorizar los identificadores. Es decir, las clases, funciones, etc. se pueden colocar dentro de un espacio de nombres, manteniéndolos separados de otras clases que no están relacionadas. Por ejemplo, en C++ todo, desde la biblioteca estándar, está en el espacio de nombres std.

+0

Headerfile contiene prototipos, declaraciones. –

+0

@Vish: ¿Me lo estás diciendo o preguntándome? Estrictamente hablando, no hay tal cosa como un prototipo; eso es solo una declaración. – GManNickG

14

saber lo que es el archivo de cabecera, lo que necesita saber el significado de "declaración".

Para ponerlo en palabras simples, en C/C++, la compilación tiene lugar por fuente. Si tengo un A.cpp y en el interior hago uso de una función foo(), que se definirá en otro lugar, necesito decirle al compilador que: "Hola, estoy usando foo(), aunque no puedes verlo definido en cualquier lugar de mi fuente, no se preocupe, está definido en otra fuente ". La forma de decirle al compilador sobre esto es "declarar" foo() en A.cpp.

Si soy el autor de foo(), todos los que usan foo() deben escribir la declaración void foo(); en su archivo fuente. Será un montón de trabajo duplicado y sin sentido. Y es muy difícil para mí decirle al tipo que "usa" foo() que tenga una declaración correcta. Por lo tanto, como autor de foo(), escribo un archivo que contiene la declaración de uso de foo() y lo distribuyo para que las personas puedan simplemente "importar" el contenido del archivo a su fuente. El archivo que estoy distribuyendo es el archivo de encabezado. La acción de importación es #include en C/C++. Sí, #include no es más que insertar el contenido del archivo incluido en el lugar de #include.


Espacio de nombres es otra historia. Para ser breves, se puede pensar que es "verdadero" nombre de la función/clase etc. Por ejemplo, si hago

namespace FOO { 
    class Bar { } 
} 

La clase no es realmente nombrado Bar, que es "verdadero" nombre es, de hecho, FOO :: Bar.

C++ proporciona alguna forma de evitar que escriba el nombre real largo, mediante "usar".

-3

El espacio de nombres es una nueva palabra dada a headerfile. Para hacer nuevas versiones disponibles.

0

Espacio de nombres es un nuevo concepto de 'ansi C++' para identificar los identificadores globales que se utilizarán con frecuencia en su programa.

¡El archivo de encabezado es un archivo fuente que respalda su programa al reutilizar un código confiable y probado, lo que ahorra tiempo y esfuerzo!

+0

Su respuesta contiene información útil, y probablemente la hubiera recibido mejor si hubiera dedicado más esfuerzo a la redacción de un texto en inglés legible y hubiera dado más detalles. ¡Espero que tengas una buena experiencia en StackOverflow! – spruceb

+0

¡Gracias! He hecho algunas ediciones La próxima vez mejoraré sobre ellos. –

Cuestiones relacionadas