Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Error referencias Cruzadas

Estas en el tema de Error referencias Cruzadas en el foro de C/C++ en Foros del Web. Buenas soy Andres y me presento en este foro con una duda, estoy intentando compilar unos programillas y estoy teniendo un problemilla con las referencias ...
  #1 (permalink)  
Antiguo 11/09/2012, 13:33
 
Fecha de Ingreso: septiembre-2012
Mensajes: 2
Antigüedad: 12 años, 3 meses
Puntos: 0
Error referencias Cruzadas

Buenas soy Andres y me presento en este foro con una duda,

estoy intentando compilar unos programillas y estoy teniendo un problemilla con las referencias cruzadas.

Tengo un esquema de clases con herencia y polimorfismo y al compilar me da el típico error de ISO C++ forbids declaration of ...

Os paso las cabeceras de los includes a ver si me podeis echar una mano.

main.cpp
Código:
#include "Defines.h"
#include "Hero.h"
#include "Mapa.h"
#include "Element.h"
#include "Chest.h"
#include "Item.h"
#include "Npc.h"
int main(void){
Hero.h
Código:
#ifndef HERO_H
#define HERO_H

#include "Bag.h"

class Hero{
Bag.h
Código:
#ifndef BAG_H
#define BAG_H 

#include "Item.h"

class Bag{
Aquí entra la herencia:

Element.h
Código:
#ifndef ELEMENT_H
#define ELEMENT_H

#include "Event.h"
#include "Hero.h"

class Element{
Item.h
Código:
#ifndef ITEM_H
#define ITEM_H

#include "Element.h"

class Item: public Element{
Tengo otras clases que heredan de Element pero que no creo que tengan que ver con el error.

Me podeis echar un cable? Gracias de antemano.
  #2 (permalink)  
Antiguo 11/09/2012, 14:02
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años, 8 meses
Puntos: 228
Respuesta: Error referencias Cruzadas

En Element.h proba poniendo:

Código C++:
Ver original
  1. #ifndef ELEMENT_H
  2. #define ELEMENT_H
  3.  
  4. #include "Event.h"
  5. #include "Hero.h"
  6. class Hero;
  7. class Element{

Asi el compilador sabe que existe una clase llamada Hero...en ese momento de la precompilacion es lo unico que necesita saber.
Obviamente en los .h solo tiene que haber definiciones y no implementaciones.

Saludos!
  #3 (permalink)  
Antiguo 11/09/2012, 14:16
 
Fecha de Ingreso: septiembre-2012
Mensajes: 2
Antigüedad: 12 años, 3 meses
Puntos: 0
Respuesta: Error referencias Cruzadas

C:\Projecte>make clean
clean ...Projecte

C:\Projecte>make
Bag.cpp
c:/Projecte/source/Hero.h:13: error: ISO C++ forbids declaration of 'Bag' with n
o type
c:/Projecte/source/Hero.h:13: error: expected ';' before '*' token
make[1]: *** [Bag.o] Error 1
make: *** [build] Error 2

C:\Projecte>pause
Presione una tecla para continuar . . .

Me continua dando el mismo error.

Gracias por tu respuesta.
  #4 (permalink)  
Antiguo 12/09/2012, 11:07
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años, 8 meses
Puntos: 228
Respuesta: Error referencias Cruzadas

Agregale un class Bag; en Hero.h despues de los includes.!

Saludos

Etiquetas: compilar, cruzadas, int, referencias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:59.