elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Problema al incluir varias clases
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema al incluir varias clases  (Leído 2,544 veces)
Jbat1Jumper

Desconectado Desconectado

Mensajes: 2



Ver Perfil
Problema al incluir varias clases
« en: 29 Marzo 2012, 06:11 am »

No puedo compilar correctamente 3 clases que requieren una de otra de manera circular.

Clase1 requiere de Clase2

Clase2 requiere de Clase3

y Clase3 requiere de Clase1

El problema es que al cortar el circulo con #pragma once o con #ifndef en una de ellas (eg. Clase3) me indica que una (Clase1) no esta declarada, y el tipo de dato es un '<error-type>'.

Ya trate de colocar las tres clases en un mismo archivo pero ocurre lo mismo, la primer clase que declaro me dice que la clase a la que estoy llamando no esta definida, cuando esta 20 lineas más abajo.

Adjunto las Interfaces de las clases, las implementaciones están en el mismo .h por comodidad

Game.h
Código:
#pragma once

#include "EntityManager.h"

class Game
{
public:

Game();
~Game();

EntityManager* manager;  // En este punto tira error

int ID;
int puntos;

};


EntityManager.h
Código:
#pragma once

#include "Entity.h"

#include <list>
#include <algorithm>

class EntityManager
{
public:

EntityManager();
~EntityManager();

list<Entity*> entities;                //
list<Entity*>::iterator it_entities;  // En este punto no pero puede

void add_entity(Entity*);
void del_entity(Entity*);

void update_all();
void draw_all();

void rewind();
Entity* current();
Entity* next();

};

Entity.h
Código:
#pragma once

#include "game.h"

class Entity
{
public:

Game * gPtr; // En este punto tira error

Entity();
Entity(Game* g_ptr) { gPtr = g_ptr; }



virtual void init( int xo, int yo, SDL_Surface* );

virtual ~Entity();

virtual void draw(SDL_Surface*);
virtual void update();

virtual void check_Collision(Entity*);
virtual void Collision(Entity*);

int type;
bool collidable;
bool alive;

double x;
double y;
double w;
double h;

SDL_Surface * sprite;
};


   Si existe algún artilugio mágico-lógico que le solucione este problema a este novato estaría agradecido en que me lo comentaran, desde ya muchas gracias...




En línea

Beakman

Desconectado Desconectado

Mensajes: 190



Ver Perfil WWW
Re: Problema al incluir varias clases
« Respuesta #1 en: 29 Marzo 2012, 09:18 am »

Al comienzo de todo el código escribí lo siguiente:
Código
  1. class Game;
  2. class EntityManager;
  3. class Entity;

Saludos.


En línea

Jbat1Jumper

Desconectado Desconectado

Mensajes: 2



Ver Perfil
Re: Problema al incluir varias clases
« Respuesta #2 en: 29 Marzo 2012, 13:23 pm »

Gracias
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema con las clases en c#
.NET (C#, VB.NET, ASP)
The Jackal 2 2,714 Último mensaje 18 Noviembre 2007, 13:10 pm
por The Jackal
problema al incluir un php en otro.
PHP
<[(x)]> 4 2,309 Último mensaje 16 Junio 2009, 00:02 am
por <[(x)]>
Problema con clases
Java
Debci 3 2,714 Último mensaje 9 Julio 2009, 20:53 pm
por Amerikano|Cls
Donde incluir librerías en clases
Programación C/C++
cNoob 5 2,742 Último mensaje 17 Diciembre 2017, 13:31 pm
por ivancea96
se puede extender varias clases hijas en cadena??
Java
luis______ 1 2,139 Último mensaje 2 Julio 2018, 20:43 pm
por ivancea96
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines