Programación General > Visual C++
Errores Con Vbles Globales
(1/1)
Sandra_mad:
Hola a todos!!! Me estan dando muchos problemas las variables globales; Tengo varias clases, y todas ellas tienen que acceder a las mismas variables, para ello que mejor que usar variables globales, no??? Pues bien, me estan dando muchos problemas; Las he declarado en muchos sitios, y me dan errores en todos; Las tengo declaradas en el fichero .h de una de las clases, y en las demas clases les pongo el #include "xxxx.h" donde las tengo declaradas, con el objetivo de poder usarlas, no me dan errores al acceder a ellas desde las otras clases, pero me dan tantos errores de linkado como variables tengo; Error tipico que me sale:
DescargarExtensiones.obj : error LNK2005: "int Des_Archivo" (?Des_Archivo@@3HA) already defined in DescargarArchivo.obj
Como puedo solucionarlo?????
Gracias, y buenos dias;
Ruben3d:
Hola.
Hay que ver la diferencia entre una declaración y una definición. Una declaración sólo le indica al compilador que algo existe y una definición hace lo mismo, además de reservar memoria para lo que se haya indicado. Por ello, si defines la variable en el .h y lo incluyes muchas veces lo que harás será reservar memoria varias veces para la misma variable. Lo que tienes que hacer es declararla en el .h y hacer la reserva en un archivo .c ó .cpp. Por ejemplo, si la variable es una cadena de texto deberías hacer:
--- Código: Text --- /* En el .h, ésto será lo que se incluya para indicar que ésta variable tiene reservada memoria y puede ser utilizada. */extern char cadena[256]; ------ /* En el .c ó .cpp, ésta es la reserva estática de memoria para la variable y sólo puede haber una por variable/programa. */char cadena[256];
Un saludo.
Ruben3d
Sandra_mad:
Muchas gracias por su ayuda, seguire su consejo y ya les contare
Navegación
Ir a la versión completa