Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/04/2007, 06:04
hugetto
 
Fecha de Ingreso: abril-2007
Mensajes: 1
Antigüedad: 17 años
Puntos: 0
Referencias cruzadas c++

Buenas! Estoy haciendo un pequeño programa en c++ y tengo el siguiento problema:

archivo1.h:48: error: ISO C++ forbids declaration of ‘archivo1’ with no type
archivo1.h:48: error: expected ‘;’ before ‘*’ token

y el codigo es el siguiente:

archivo 1-------------------
#ifndef ARX1_H
#define ARX1_H
#include "archivo1.h"
[...codigo...]

#endif
--------------------------

archivo 2-------------------
#ifndef ARX2_H
#define ARX2_H
#include "archivo2.h"
[...codigo...]

#endif
--------------------------

He buscado por internet i he encontrado que este problema se llama referéncias cruzadas, y lo que sucede es que como se incluyen mutuamente esto implicaria no terminar nunca. Por esa razon se ponen los #ifdef, entonces pasa lo siguiente:

el primer archivo define la variable ARX1_H luego llama al archivo2.h y define la variable ARX2_H. Entonces al llegar al archivo2.h este intenta incluir al fichero1.h pero como ya esta definida la variable ARX1_H no lo hace con lo que desde el fichero2.h no puedo utilizar la clase del fichero1.h

No se si me he explicado muy bien espero que lo entendais.

Si alguien pudiese echarme una mano se lo agradeceria mucho.

Hasta pronto ;)