Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





c++ recorrer los miembros de la clase

Iniciado por diegosantos, 11 de Mayo de 2014, 02:24:13 PM

« anterior - próximo »

diegosantos

hola a todos..
hize una clase con lagunos miembros publicos y algunos arrays.
con la onda de almacenar muchos datos, creo un array le pongo un monton de filas y agrego los datos a los miembros y a los array dentro de la clase.
Todo bien hasta ahi.
Ahora tengo la dificultad de querer recorrer los miembros de la clase dinamicamente. En .net lo hacia usando reflexcion y asi teneia acceso a los miembros de la clase y podia jugar con ellos.
todo esto se me planteo para hacer una busqueda a travez de los distintos miembros de la clase.

les agradezco todos por su tiempo.

SySKNoT

Saludos Diego,

No llevo mucho por estos foros y por fin me decido a escribir, ahí va mi respuesta:

En mi opinión y según lo que leo creo que deberías plantearte el cómo almacenas la información dentro de la clase. Por lo que he entendido, tú quieres recorrer los miembros (sus variables y arrays) ya sea para serializarlos o simplemente para realizar algún tipo de búsqueda y no se te ocurre cómo acceder y recorrer a los miembros de forma dinámica (los Arrays presupongo).
¿Utilizas la clase Array de c++? Porque en ese caso dispones de un método count que te devuelve el valor de los elementos que contiene el array, pero si creas el array de esta forma: <tipo> array [tamaño]; , asignándole un tamaño, no tiene sentido recorrerlo de forma dinámica ya que sus elementos no son dinámicos (utilizarías el tamaño asignado en su declaración (puedes usar un define, por ejemplo). Otra cosa sería que utilizaras alguna función para redimensionarlo, para ajustarlo al número de elementos, pero lo veo mucho más complicado que utilizar la clase Array ya implementada. Luego solo tendrías que usar un bucle for (o foreach para recorrer una colección) y listo.

Perdón si he metido la pata en algo, no soy ningún maestro. Si necesitas ayuda, cachos de código ayudan.

Un saludo!

Gallo

En C++ no hay reflexión de per se, lo que se suele hacer en tiempo de compilación es generar un descriptor de cada clase para hacer RTTI (http://en.wikipedia.org/wiki/Run-time_type_information), aún así no hay mecanismos para hacer algo como recorrer variables miembro en runtime, se deberia generar el código en tiempo de compilación.

Sea lo que sea lo que estas haciendo, lo estas planteando erroneamente, en C++ no se trabaja así, no intentes portar una funcionalidad de otro lenguaje a C++ pq en la mayoria de casos no te saldrá bien, lo se por que yo me he encontrado en esa misma situación con c++ intentando imitar algo de otro lenguaje y ni las macros, ni templates ni . A veces simplemente hay que picar el código tal cual, sin automatismos de por medio.






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.