Hola gente, como algunos saben ando con un proyecto en C++ y me gustaría que si alguien con buenos conocimientos en C++ lee este mensaje me comentara que le parece esto que voy a hacer.. para saber si es fiable o no..
Dentro de un juego existen muchas clases de objetos, puede haber un personaje, o varios.. pero todos de una misma clase, o no.. pueden haber enemigos.. objetos para recojer.. arboles etc etc..
El dilema que tengo es simple, como obtener un identificador de tipo?
Vale, primero el "para que"?
- en gemix existe algo como esto: collision( type enemigo );
Esto es muy útil ya que permite comprobar la colisión entre el objeto que realiza la llamada y una serie de objetos que pertenecen a un tipo de procesos determinado, y lo mejor de todo, ya hablando a bajo nivel "lo que el programador no ve", es que es completamente desasistido, osea, el 'type' de un proceso, en gemix por ejemplo se crea automaticamente al crearse el proceso.
Bien, yo me pregunto si en C++ hay algo similar a esto, osea, algun mecanismo que me permita averiguar el tipo de clase de objeto que es en concreto un objeto, he encontrado esta información:
typeid(this).name()
Tiene buena pinta y parece funcionar bien, pero en algunas web indican que no se asegura que el 100% de los casos el programa obtenga el mismo nombre exacto..
Alguien tiene información sobre esto? o alguien conoce un método alternativo para hacer esto?
Realmente me da igual si lo que obtengo es un string, un char[] o un int.. simplemente quiero obtener un identificador del tipo que sea que sea siempre el mismo para todos los objetos de un tipo de clase.
Alguna info al respecto?
- Yo estoy haciendo pruebas y parece funcionar bien en todos los casos.. alguien ha usado esta feature alguna vez y le ha dado problemas?
Pregunta de C++ sobre typeid(this).name()
- erkosone
- Posts: 10656
- Joined: Tue Feb 24, 2009 2:13 pm
- Location: Barcelona.
- Contact:
- CicTec
- Posts: 16590
- Joined: Thu Jul 31, 2008 10:18 pm
Re: Pregunta de C++ sobre typeid(this).name()
Hola erkosone,
Yo no llegue a usarlo, pero lo que estas utilizando se llama RTTI en C++, aqui varios articulos que indican que es, como se usa y sus limitaciones:
https://en.wikipedia.org/wiki/Run-time_type_information
https://en.wikibooks.org/wiki/C%2B%2B_Programming/RTTI
https://www.youtube.com/watch?v=Z_Fe40ntu9M
https://www.youtube.com/watch?v=DLJYbUXFcHk
https://stackoverflow.com/questions/579 ... ve-is-rtti
https://www.codingunit.com/c-tutorial-t ... ing-part-1
https://www.codingunit.com/cplusplus-tu ... -type_info
https://www.jarchitect.com/QACenter/ind ... ation-rtti
De todas formas, como es bastante compleja de usar, yo en ti haria una implementacion simple propria, de hecho los DIV engines la hacen en C y no es que requiera mucho hacerla.
Yo no llegue a usarlo, pero lo que estas utilizando se llama RTTI en C++, aqui varios articulos que indican que es, como se usa y sus limitaciones:
https://en.wikipedia.org/wiki/Run-time_type_information
https://en.wikibooks.org/wiki/C%2B%2B_Programming/RTTI
https://www.youtube.com/watch?v=Z_Fe40ntu9M
https://www.youtube.com/watch?v=DLJYbUXFcHk
https://stackoverflow.com/questions/579 ... ve-is-rtti
https://www.codingunit.com/c-tutorial-t ... ing-part-1
https://www.codingunit.com/cplusplus-tu ... -type_info
https://www.jarchitect.com/QACenter/ind ... ation-rtti
De todas formas, como es bastante compleja de usar, yo en ti haria una implementacion simple propria, de hecho los DIV engines la hacen en C y no es que requiera mucho hacerla.
- erkosone
- Posts: 10656
- Joined: Tue Feb 24, 2009 2:13 pm
- Location: Barcelona.
- Contact:
Re: Pregunta de C++ sobre typeid(this).name()
Gracias por la información cictec, yo también he hecho una implementación propia por que es lo mas sencillo que voy a poder usar.
De todos modos gracias por la información
De todos modos gracias por la información
http://iphonegamesdev.com/
[GEMIX - VIDEO TUTORIALES] http://www.youtube.com/user/fasetconasa
http://gurugameprogramming.blogspot.com.es/
[GEMIX - VIDEO TUTORIALES] http://www.youtube.com/user/fasetconasa
http://gurugameprogramming.blogspot.com.es/