Ando desarrollando un progama en c++ pero tengo un problema con una cabecera y lo demostraré con un ejemplo simple y claro que no viene del programa que desarrollo, para que se entienda mejor :).
Archivo main.cpp
Cita:
Archivo globalVars.h#include <cstdlib>
#include <iostream>
#include "globalVars.h"
using namespace std;
int main ()
{
x=10;
multiplicarX();
cout<<"equis multiplicada ="<<x;
return 0;
}
#include <iostream>
#include "globalVars.h"
using namespace std;
int main ()
{
x=10;
multiplicarX();
cout<<"equis multiplicada ="<<x;
return 0;
}
Cita:
Archivo operaciones.cpp#include <cstdlib>
#include <iostream>
int x;
int multiplicarX();
#include <iostream>
int x;
int multiplicarX();
Cita:
Como se ve en el archivo operaciones.cpp utilizo la variable x (declarada en globalVars.h) pero utilizando extern. Mi problema es que en el programa que desarrollo tendía que poner infinidad de extends. pensé en agregar #include "globalVars.h" a operaciones.cpp pero me salta un error por qué se re define todo lo de #include "globalVars.h" como consecuencia de haberla llamado antes en main.cpp.#include <cstdlib>
#include <iostream>
extern int x;
int multiplicarX()
{
x=x*2;
}
#include <iostream>
extern int x;
int multiplicarX()
{
x=x*2;
}
¿Qué puedo hacer?