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

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  dependencias circulares
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: dependencias circulares  (Leído 3,124 veces)
kilodepala2

Desconectado Desconectado

Mensajes: 14


Ver Perfil
dependencias circulares
« en: 11 Mayo 2016, 15:28 pm »

que tal amigos, estoy programando un juego en c++ basado en tiles con vista isometrica. tengo un problema que me esta quemando la cabeza.
la cosa es asi:
tengo una clase mapa, que tiene un puntero bidimensional a clases tile, y la clase tile tiene un puntero a mapa. la clase tile tiene un metodo dibujar(), que dibuja sobre una estructura BITMAP que esta definida en una clase Graphics, accediendo a esta mediante un puntero en mapa.

aqui esta el codigo, el error que obtengo es "Expected ')' before '*'"

donde esta el error?

Código
  1. //tile.h
  2.  
  3. #ifndef TILE_H
  4.  
  5.    #define TILE_H
  6.    #include "mapa.h"
  7.    class Tile
  8.    {
  9.  
  10.    public:
  11.  
  12.        Tile(Mapa*, int, int);
  13.        ~Tile();
  14.  
  15.        void Draw();
  16.  
  17.  
  18.    private:
  19.  
  20.        Mapa *parent;
  21.        int posX;
  22.        int posY;
  23.  
  24.    };
  25.  
  26.  
  27. #endif // TILE_H
  28.  
  29. [/code=cpp]
  30.  
  31. [code]//tile.cpp
  32.  
  33. #include "tile.h"
  34.  
  35. Tile::Tile(Mapa *_parent, int x, int y)
  36. {
  37.    parent = _parent;
  38.    posX = x;
  39.    posY = y;
  40. }
  41.  
  42. Tile::~Tile()
  43. {
  44.  
  45. }
  46.  
  47. void Tile::Draw()
  48. {
  49.    int px = (posX - posY) * (parent->parent->tile->w /2) + parent->scrollX;
  50.    int py = (posX + posY) * (parent->parent->tile->h /2) + parent->scrollY;
  51.  
  52.    draw_sprite(parent->parent->buffer, parent->parent->tile, px, py);
  53.  
  54.    delete px;
  55.    delete py;
  56. }
  57.  

Código
  1. //mapa.h
  2. #include "graphics.h"
  3.  
  4.  
  5. #ifndef MAPA_H
  6.  
  7.    #define MAPA_H
  8.    #include "tile.h"
  9.    class Mapa
  10.    {
  11.  
  12.    public:
  13.  
  14.        Mapa(Graphics);
  15.        ~Mapa();
  16.  
  17.        void Draw();
  18.  
  19.    private:
  20.  
  21.        Tile *matriz[64][64];
  22.        int scrollX;
  23.        int scrollY;
  24.        Graphics *parent;
  25.  
  26.    };
  27.  
  28.  
  29. #endif // MAPA_H
  30.  

Código
  1. #include "mapa.h"
  2.  
  3. Mapa::Mapa(Graphics *_parent)
  4. {
  5.    parent = _parent;
  6.  
  7.    for(int i=0; i<64; i++)
  8.    {
  9.        for(int j=0; j<64; j++)
  10.        {
  11.            matriz[j][i] = new Tile(this, j, i);
  12.        }
  13.    }
  14. }
  15.  
  16. Mapa::~Mapa()
  17. {
  18.  
  19. }
  20.  
  21. void Mapa::Draw()
  22. {
  23.    for(int i=0; i<64; i++)
  24.    {
  25.        for(int j=0; j<64; j++)
  26.        {
  27.            matriz[j][i]->Draw();
  28.        }
  29.    }
  30. }
  31.  
[/code]


« Última modificación: 11 Mayo 2016, 15:54 pm por kilodepala2 » En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: dependencias circulares
« Respuesta #1 en: 11 Mayo 2016, 15:34 pm »

Has expuesto el tema, pero no el problema. ¿Qué ocurre con ello?


En línea

kilodepala2

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Re: dependencias circulares
« Respuesta #2 en: 11 Mayo 2016, 15:53 pm »

Has expuesto el tema, pero no el problema. ¿Qué ocurre con ello?

disculpa, tuve un error al puiblicar el tema, ahora lo publico bien
En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: dependencias circulares
« Respuesta #3 en: 11 Mayo 2016, 15:59 pm »

No has puesto la línea del error.
En cualquier caso, coloca antes de los #IFDEF de cada clase, "class NOMBRE;", donde NOMBRE es el nombre de la clase del archivo. Comprueba si así funciona.

Ej:
Código
  1. class Tile;
  2.  
  3. #ifndef TILE_H
  4. #define TILE_H
  5.  
  6. #include "mapa.h"
  7.  
  8. class Tile
  9. {
En línea

kilodepala2

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Re: dependencias circulares
« Respuesta #4 en: 11 Mayo 2016, 16:02 pm »

No has puesto la línea del error.
En cualquier caso, coloca antes de los #IFDEF de cada clase, "class NOMBRE;", donde NOMBRE es el nombre de la clase del archivo. Comprueba si así funciona.

Ej:
Código
  1. class Tile;
  2.  
  3. #ifndef TILE_H
  4. #define TILE_H
  5.  
  6. #include "mapa.h"
  7.  
  8. class Tile
  9. {

tenes razon, disculpa. la linea del error es la linea 12 del primer code.

si pongo el forward como dijiste vos me sale este error:

\mapa.cpp|5|error: prototype for 'Mapa::Mapa(Graphics*)' does not match any in class 'Mapa'
En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: dependencias circulares
« Respuesta #5 en: 11 Mayo 2016, 16:32 pm »

Porque no existe. Tú pusiste:
Código
  1. Mapa(Graphics);

Querrías decir:
Código
  1. Mapa(Graphics*);
En línea

kilodepala2

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Re: dependencias circulares
« Respuesta #6 en: 11 Mayo 2016, 16:38 pm »

Porque no existe. Tú pusiste:
Código
  1. Mapa(Graphics);

Querrías decir:
Código
  1. Mapa(Graphics*);

tenes razon, que error pelotudo...

gracias amigo por tu ayuda jajaj
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Anillo de procesos circulares
Programación C/C++
smasher666 6 5,117 Último mensaje 11 Mayo 2010, 15:08 pm
por smasher666
Ayuda Acerca De Listas y Listas Circulares (Revienta Memoria :S)
Programación C/C++
Gerik 0 6,045 Último mensaje 12 Septiembre 2010, 01:49 am
por Gerik
quien me ayuda con este programa!!!!numeros!!!
Programación C/C++
akiss 3 5,930 Último mensaje 6 Marzo 2012, 01:42 am
por akiss
Algortimos de euclides usando listas circulares
Programación C/C++
imperio7 3 2,139 Último mensaje 22 Septiembre 2013, 08:53 am
por eferion
problema al instalar las dependencias de repos de github
GNU/Linux
Pedrodudasmaster 2 3,372 Último mensaje 9 Enero 2024, 14:46 pm
por Pedrodudasmaster
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines