• Miércoles 29 de Mayo de 2024, 16:58

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - UnMandrango

Páginas: [1]
1
C/C++ / Re: Tipado dinámico, es posible?
« en: Miércoles 2 de Febrero de 2011, 00:10 »
Gracias por responder. Ya lo tengo claro, no pierdo mas tiempo en cosas imposibles!  :good:

Ya llevo días mirando también el tema de crear un interprete, usando Flex/Bison, no parece fácil pero creo que puede ser muy interesante crear un interprete de un lenguaje propio (algo simple claro :P) aunque sea para aprender.

Por cierto, en que categoría del foro podría comentar mis dudas sobre Flex/Bison?

Saludos!

2
C/C++ / Re: Tipado dinámico, es posible?
« en: Martes 1 de Febrero de 2011, 22:29 »
Hola m0skit0, el tema de void * ya lo intente, pero como puedo luego recuperar un void * a un objeto sin saber cual es? pero sin saberlo, totalmente dinámico.

La gracia es usar C/C++ porque es mas eficiente que un lenguaje interpretado.

El motor del que hablo de la empresa esta desarrollado en C++, y creo que lenguajes como Python o PHP, realmente también han sido creados en C o C++ (de esto no estoy seguro). Entonces debe ser posible implentarlo, no? O realmente el tipado dinámico de estos lenguajes es "simulado" por el interprete?

3
C/C++ / Tipado dinámico, es posible?
« en: Martes 1 de Febrero de 2011, 21:27 »
Hola, simplemente eso: ¿Es posible implementar el tipado dinámico en C/C++ o esto solo es posible en lenguajes de scripting?

He probado mil formas y bibliotecas (incluidas las boost) pero no consigo nada convincente. Pregunto esto porque no quiero seguir perdiendo el tiempo si es imposible.

La finalidad es porque estoy desarrollando un pequeño motor de juegos basado en el de la empresa en la que trabajo (este es de código cerrado) y permite tipado dinámico, es un lenguaje script, pero puede ser interpretado que es como yo lo uso para desarrollar los juegos y luego se puede compilar cuando el juego ya esta terminado.

Gracias!

4
C/C++ / Re: Pregunta sobre listas
« en: Martes 25 de Enero de 2011, 21:06 »
He estado dando vueltas al tema... y creo que no voy por el camino correcto.

Me voy a explicar, donde yo trabajo tienen un game engine propio, este tiene su propio lenguaje script y lo interpreta en tiempo de ejecución. Me he acostumbrado mucho a este lenguaje y me gustaría utilizar algunas características de él en C++/SDL para crear mis juegos. Y para empezar lo primero que necesitaría es tener un tipo de variable global: Todas las variables pueden ser enteros, flotantes, booleanos, cadenas o cualquier objeto. Es algo así como un tipo de variable puntero pero que puede apuntar a cualquier tipo u objeto y acceder a sus propiedades o métodos.

Luego están las listas, aquí puedo crear listas que contengan todo tipo de objetos diferentes, pero claro, realmente quizás todo es el mismo objeto "puntero global". Incluso la lista seria un puntero porque se pueden anidar. Así si seria fácil.

Yo no puedo acceder al código de ese motor para ver como esta hecho por dentro. Por eso pregunto, es posible crear algo así en C++?

Se puede guardar en una variable el typeid de un objeto para luego castear usando esta variable? Se puede castear punteros void a punteros objeto sin saber el tipo, solo su tamaño?

Gracias!  :hola:

5
C/C++ / Re: Pregunta sobre listas
« en: Domingo 23 de Enero de 2011, 15:00 »
Hola, gracias a ambos por responder. La clase vector no me sirve porque tengo que especificar el tipo, y lo que necesito es poder tener cualquier tipo y/o objetos en la misma lista.

Ya intente hacer mi propia clase con void* el problema esta a la hora de acceder a los elementos, voy a copiar el código, por ahora solo tengo dos métodos, para añadir y para acceder.

Código: C++
  1. #ifndef LIST_H
  2. #define LIST_H
  3.  
  4. class List
  5. {
  6.     public:
  7.         int size;
  8.         void ** nodes;
  9.  
  10.         List();
  11.         virtual ~List();
  12.  
  13.         void * operator [] (unsigned int index);
  14.  
  15.         void Add(void * item);
  16.     protected:
  17.     private:
  18. };
  19.  
  20. List::List()
  21. {
  22.     size = 0;
  23.     nodes = (void **)malloc(64*sizeof(void *));
  24. }
  25.  
  26. List::~List()
  27. {
  28.  
  29. }
  30.  
  31. void * List::operator [] (unsigned int index)
  32. {
  33.     return nodes[index];
  34. }
  35.  
  36. void List::Add(void *item)
  37. {
  38.     nodes[size] = item;
  39.     size++;
  40. }
  41.  
  42. #endif // LIST_H
  43.  
  44.  

y aquí lo que intento desde el main:

Código: C++
  1. #include <cstdlib>
  2. #include <cstdio>
  3.  
  4. #include "List.h"
  5. #include "Service.h"
  6.  
  7. using namespace std;
  8.  
  9. int main()
  10. {
  11.     List lista;
  12.  
  13.     Service * serv = new Service;
  14.  
  15.     lista.Add(serv);
  16.  
  17.     lista[0]->Move();
  18.  
  19.     return 0;
  20. }
  21.  

El error:
error: ‘void*’ is not a pointer-to-object type

Supongo que casteando el puntero void que me devuelve al objeto adecuado podría acceder a él, pero si tengo diferentes tipos de objetos, como saber que objeto me devuelve?

Saludos!

6
C/C++ / Re: Pregunta sobre listas
« en: Domingo 23 de Enero de 2011, 12:50 »
:hitcomp:

7
C/C++ / Pregunta sobre listas
« en: Miércoles 19 de Enero de 2011, 21:42 »
Una pregunta simple: ¿Es posible en C++ crear una clase Lista o Array que sea capaz de contener diferentes tipos de objetos o incluso anidar otras listas dentro?

Por mas que he buscado no he sacado nada en claro. Gracias!

Páginas: [1]