Variables Globales c++
Publicado por harold puentes (12 intervenciones) el 25/10/2007 21:33:44
Buen dia maestros del c++
Estoy realizando una solucion utilizando el api de wxwidgets ( ya lo he usado antes ), pero resulta que me surgio utilizar una variable global y tengo problemas al momento que se realiza el linker de las librerias, el error es "multiple definicion de la varibla MyVar " . .. haciendo un ejemplo sencillo en c++ ( VC++ o GNU , gcc , MinGW ) para que ustedes puedan replicar lo que me pasa seria de la siquiente manera:
-----------------------main.cpp-----------------------------
#include "Myheader1.h"
int main(){
MyVar = 5;
return 0;
}
---------------------Myheader1.h---------------------------
#ifndef __MYHEADER1__
#define __MYHEADER1__
#include "Myheader2.h"
void MyFunc1();
#endif // __MYHEADER1__
---------------------Myheader1.cpp---------------------------
#include "Myheader1.h"
void MyFunc1(){
//sin nada
}
---------------------Myheader2.h---------------------------
#ifndef __MYHEADER2__
#define __MYHEADER2__
int MyVar;
void MyFunc2();
#endif // __MYHEADER2__
---------------------Myheader2.cpp---------------------------
#include "Myheader2.h"
void MyFunc2(){
//sin nada
}
------------------------------------------------------------
Tambien sale el error si colocara el include del Myheader2.h en los dos .cpp
Si alguno de ustedes me puede sugerir como usar una variable global ( claro, sin usar extern ) en c++ le agradeceria ,
saludos
Gracias
Estoy realizando una solucion utilizando el api de wxwidgets ( ya lo he usado antes ), pero resulta que me surgio utilizar una variable global y tengo problemas al momento que se realiza el linker de las librerias, el error es "multiple definicion de la varibla MyVar " . .. haciendo un ejemplo sencillo en c++ ( VC++ o GNU , gcc , MinGW ) para que ustedes puedan replicar lo que me pasa seria de la siquiente manera:
-----------------------main.cpp-----------------------------
#include "Myheader1.h"
int main(){
MyVar = 5;
return 0;
}
---------------------Myheader1.h---------------------------
#ifndef __MYHEADER1__
#define __MYHEADER1__
#include "Myheader2.h"
void MyFunc1();
#endif // __MYHEADER1__
---------------------Myheader1.cpp---------------------------
#include "Myheader1.h"
void MyFunc1(){
//sin nada
}
---------------------Myheader2.h---------------------------
#ifndef __MYHEADER2__
#define __MYHEADER2__
int MyVar;
void MyFunc2();
#endif // __MYHEADER2__
---------------------Myheader2.cpp---------------------------
#include "Myheader2.h"
void MyFunc2(){
//sin nada
}
------------------------------------------------------------
Tambien sale el error si colocara el include del Myheader2.h en los dos .cpp
Si alguno de ustedes me puede sugerir como usar una variable global ( claro, sin usar extern ) en c++ le agradeceria ,
saludos
Gracias
Valora esta pregunta


0