C++ ENVOLTURA DEL PREPROCESADOR
Para evitar que el código del encabezado se
incluya en el mismo archivo de código fuente más de una vez, se utiliza lo que
se conoce como "Envoltura del Preprocesador". Como una clase sólo se
puede definir una vez, al usar estas directivas del preprocesador evitamos los errores
por múltiples definiciones.
Ejemplo:
#ifndef ENCABEZADO_H
#define ENCABEZADO_H
.
.
.
#endif
Este
código se escribe por convención, al inicio de un archivo de cabecera (header).
Se compone principalmente de las instrucciones ifndef, define y endif.
.
.
.
Cuando se construyan programas más grandes, las demás definiciones
y declaraciones también se colocarán en archivos de encabezado. La envoltura
del preprocesador evita que el código entre #ifndef (que significa
“si no está definido”) y #endif se incluya, si ya se ha definido el nombre ENCABEZADO_H. Si el
encabezado no se ha incluido antes en un archivo, el nombre ENCABEZADO_H se define
mediante la directiva #define y se incluyen las instrucciones del archivo de encabezado. Si el
encabezado ya se incluyó antes, ENCABEZADO_H se encuentra definido de
antemano y el archivo de encabezado no se vuelve a incluir. Por lo general, los
intentos de incluir un archivo de encabezado varias veces (inadvertidamente)
ocurren en programas extensos con muchos archivos de encabezado, que a su vez
pueden incluir otros archivos de encabezado. La convención de uso común para el
nombre de la constante simbólica en las directivas del preprocesador es
simplemente el nombre del archivo de encabezado en mayúsculas con el carácter
de guión bajo como sustituto para el punto.
Más adelante, cuando se estudien las composiciones, se podrá ver
un ejemplo en donde al no incluir una envoltura del preprocesador, ocasiona un
error al tratar de compilar, ya que se detecta que una clase ya ha sido
definida.
Este artículo se parece mucho a un capitulo del libro "Como Programar C++ Deitel Peison - Sexta edición", el cual habla sobre las clases. ¡Buen aporte!
ResponderEliminar