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

 

 


Tema destacado: Curso de javascript por TickTack


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


Desconectado Desconectado

Mensajes: 499


Error, el teclado no funciona. Pulse F1 para continuar


Ver Perfil WWW
Ayuda Struct
« en: 7 Abril 2013, 18:31 pm »

Hola, estoy intentando hacer una estructura sencilla para usar dentro de otra, son estas:
Código:
struct Objeto{

Bounding bounding;
   float x, y, z;};
y en otra cabecera:
Código:
struct Bounding {

int Tipo; // 1 -> Esfera // 2 -> Box alineada a los ejes // 3 -> Box alineada al objeto

float xmax, xmin;
float ymax, ymin;
float zmax, zmin;
float r;

float vx[8], vy[8], vz[8];

void Crear(int tipo, GLuint objeto);
};

Pero no se porque me dice:
Código:
1>e:\c++\opengl\movimiento de pj + camara\juego1\idobjeto.h(12) : error C2146: error de sintaxis : falta ';' delante del identificador 'bounding'
y si en vez de Bounding bounding; pongo struct Bounding bounding;
Código:
error C2079: 'Objeto::bounding' utiliza struct 'Bounding' sin definir

Ayuda rapida porfavor


En línea

- Pásate por mi web -
https://codeisc.com
rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Ayuda Struct
« Respuesta #1 en: 7 Abril 2013, 18:40 pm »

¿Por favor puedes publicar el código fuente completo (por supuesto si no es muy largo)?

Con esos dos fragmentos lo único que se me ocurre es que revises el orden de las declaraciones (la declaración de "Bounding" debe encontrarse antes de la de "Objeto").

Un saludo


En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
BlackM4ster


Desconectado Desconectado

Mensajes: 499


Error, el teclado no funciona. Pulse F1 para continuar


Ver Perfil WWW
Re: Ayuda Struct
« Respuesta #2 en: 7 Abril 2013, 18:42 pm »

a ver son 2 headers, cada 1 con su estrctura:
objetos.h
Código:
#include "Bounding.h"
struct Objeto{

struct Bounding bounding;
   float x, y, z;
   int modelo;
   float t_x, t_y, t_z;
   float r;
   int ang_x;
   bool g, c, usado;

   void Nuevo(int vmodelo, float vx,float vy,float vz,int vang_x,float vt_x,float vt_y,float vt_z, bool vg, bool vc) {
      modelo = vmodelo;
      ang_x = vang_x;
      x = vx;   t_x = vt_x;
      y = vy;   t_y = vt_y;
      z = vz;   t_z = vt_z;

  r = (t_x+t_y+t_z)/6;

  g = vg; c = vc;
  usado = true;
      ObjetosTotales++;
   }

   void PintarBoundingSphere(){

GLUquadricObj *q;
q=gluNewQuadric();
gluQuadricDrawStyle(q, GLU_SILHOUETTE);
gluQuadricNormals(q, GLU_SMOOTH);
gluQuadricTexture(q, GL_FALSE);
gluSphere(q,r+r/2,16,16);
gluDeleteQuadric(q);

   }
};

y la Bounding.h
Código:
#include "idobjeto.h"
struct Bounding {

int Tipo; // 1 -> Esfera // 2 -> Box alineada a los ejes // 3 -> Box alineada al objeto

float xmax, xmin;
float ymax, ymin;
float zmax, zmin;
float r;

float vx[8], vy[8], vz[8];

void Crear(int tipo, GLuint objeto);
};

eso es no más
En línea

- Pásate por mi web -
https://codeisc.com
rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Ayuda Struct
« Respuesta #3 en: 7 Abril 2013, 18:52 pm »

Te falto uno: "Objeto.h" incluye a "Bounding.h" y este a "idobjeto.h".

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
BlackM4ster


Desconectado Desconectado

Mensajes: 499


Error, el teclado no funciona. Pulse F1 para continuar


Ver Perfil WWW
Re: Ayuda Struct
« Respuesta #4 en: 7 Abril 2013, 18:57 pm »

Uups "Objeto.h" = "idobjeto.h" esque lo habia cambiado para el ejemplo.
De por si está bien incluido  :-[
En línea

- Pásate por mi web -
https://codeisc.com
rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Ayuda Struct
« Respuesta #5 en: 7 Abril 2013, 19:13 pm »

Déjame ver si entiendo correctamente:

1) El primer archivo se llama "Objeto.h" y su primera linea es:
Código
  1. #include "Bounding.h"

2) El segundo archivo se llama "Bounding.h" y su primera linea es:
Código
  1. #include "Objeto.h"

Si es así el problema es una dependencia circular: no puedes tener dos archivos donde cada uno incluya al otro.

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
BlackM4ster


Desconectado Desconectado

Mensajes: 499


Error, el teclado no funciona. Pulse F1 para continuar


Ver Perfil WWW
Re: Ayuda Struct
« Respuesta #6 en: 7 Abril 2013, 19:24 pm »

mm si quito la primera linea de bounding sigue fallando
En línea

- Pásate por mi web -
https://codeisc.com
rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Ayuda Struct
« Respuesta #7 en: 7 Abril 2013, 19:53 pm »

Revisando con cuidado utilizas la variable "ObjetosTotales" pero no la declaras en ninguno de los dos archivos.

Mejor publica el código fuente completo junto con las actualizaciones que hayas realizado.

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
BlackM4ster


Desconectado Desconectado

Mensajes: 499


Error, el teclado no funciona. Pulse F1 para continuar


Ver Perfil WWW
Re: Ayuda Struct
« Respuesta #8 en: 7 Abril 2013, 20:00 pm »

https://www.dropbox.com/s/ar6etr7405jds2j/Movimiento%20de%20pj%20%2B%20camara.rar
En línea

- Pásate por mi web -
https://codeisc.com
avesudra


Desconectado Desconectado

Mensajes: 724


Intentando ser mejor cada día :)


Ver Perfil
Re: Ayuda Struct
« Respuesta #9 en: 7 Abril 2013, 20:16 pm »

Quizás es lo que tu dices rir3760 lo de la referencia circular.
En Pj.h
Código
  1. #include "IdObjeto.h"
  2. #include "Includes.h"
En idObjeto.h
Código
  1. #include "Includes.h"
  2. #include "Bounding.h"
En Bounding.h
Código
  1. #include "Includes.h"
  2. #pragma once
  3. #include "Pj.h"
Yo que tú metería en  Includes.h esto:
Código
  1. #include "Bounding.h"
  2. #include "Pj.h"
  3. #include "idObjeto.h"
Y dejaría a los demás con la cabecera Includes.h únicamente, prueba tu porque yo no tengo OpenGL instalado. Creo que es una referencia circular dado que bounding incluye a pj y pj incluye a idObjeto que incluye a pj y así sucesivamente ...
En línea

Regístrate en
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[SOLUCIONADO]¿Como printear un valor de un struct dentro de otro struct?
Programación C/C++
Firos 0 5,216 Último mensaje 24 Marzo 2011, 13:47 pm
por Firos
Necesito una ayuda con este struct
Programación C/C++
Blp 2 2,073 Último mensaje 19 Noviembre 2011, 23:57 pm
por Blp
Error en el struct, necesito ayuda.
Programación C/C++
Blp 4 2,469 Último mensaje 18 Diciembre 2011, 23:12 pm
por 4rkn63l
ayuda con mi programa struct c
Programación C/C++
akiranakamure 2 2,251 Último mensaje 13 Marzo 2013, 21:58 pm
por durasno
Ayuda!!! Struct para un menu!
Programación C/C++
mathias_vg 3 2,312 Último mensaje 2 Julio 2013, 15:01 pm
por z3nth10n
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines