¿Se puede ...

03/02/2005 - 21:12 por Aquiles | Informe spam
Hola a todo@s:

Necesito saber si se puede y como ...

Tengo una funcion que entre otras cosas, toma el valor de una variable de
otra clase. Para ello utilizo

pClase=(CClase *)pParent;
variable_local=pClase->variable_clase;

la cuestion es
¿se puede pasar el nombre de la variable como parametro en la llamada de la
funcion?

algo tal que asi

CString nombre funcion ( nombrevariable)
{
variable_local=pClase->nombrevariable;
}
¿se puede? ¿como?

GRacias de antemano

Preguntas similare

Leer las respuestas

#1 Rodrigo Corral [MVP]
04/02/2005 - 09:36 | Informe spam
La respuesta a bote pronto es NO. Es más creo que si necesitas hace eso
deberias replantearte tu diseño. Supongo que las funciones la estas
compilando a priori por que C++ no tiene capacidades de generacion de codigo
al vuelo, y en consecuencia estas serán un numero finito de ellas.

¿Por que no definirte una enumeración, pasarla como parametro y segun su
valor llamar a una función u otra?

Más sobre el tema...
http://groups.google.es/groups?hl=e...=GGLD,GGLD:2003-41,GGLD:es&threadm=3fc7d15c%240%2429350%243b214f66%40tunews.univie.ac.at&rnum=2&prev=/groups%3Fq%3Dc%252B%252B%2Bcall%2Bfunction%2B%252Bby%2Bname%26hl%3Des%26lr%3D%26rls%3DGGLD,GGLD:2003-41,GGLD:es%26selm%3D3fc7d15c%25240%252429350%25243b214f66%2540tunews.univie.ac.at%26rnum%3D2

Un saludo
Rodrigo Corral González [MVP]

FAQ de microsoft.public.es.vc++
http://rcorral.mvps.org
Respuesta Responder a este mensaje
#2 Isidro Muñoz
04/02/2005 - 10:43 | Informe spam
Eso no se puede.

¿ porque no pasar pClase como parametro ?
¿que es lo que quieres hacer en realidad? seguramente como indica Rodrigo
estarás haciendo un mal diseño de clases.

Saludos.
Isidro

"Aquiles" <@> escribió en el mensaje
news:
Hola a :

Necesito saber si se puede y como ...

Tengo una funcion que entre otras cosas, toma el valor de una variable de
otra clase. Para ello utilizo

pClase=(CClase *)pParent;
variable_local=pClase->variable_clase;

la cuestion es
¿se puede pasar el nombre de la variable como parametro en la llamada de


la
funcion?

algo tal que asi

CString nombre funcion ( nombrevariable)
{
variable_local=pClase->nombrevariable;
}
¿se puede? ¿como?

GRacias de antemano


Respuesta Responder a este mensaje
#3 Aquiles
06/02/2005 - 11:46 | Informe spam
Gracias por la respuesta.
En realidad, era una cuestion surgida como curiosidad y ya de paso si
ahorramos algo de codigo ...
Actualmente, soluciono el tema obteniendo un parametro de la clase y en
funcion del mismo se hace la llamada a la funcion correspondiente.Como decia
antes, si podemos saltarnos un paso intermedio ...
Gracias de nuevo


"Rodrigo Corral [MVP]" escribió en el mensaje
news:
La respuesta a bote pronto es NO. Es más creo que si necesitas hace eso
deberias replantearte tu diseño. Supongo que las funciones la estas
compilando a priori por que C++ no tiene capacidades de generacion de


codigo
al vuelo, y en consecuencia estas serán un numero finito de ellas.

¿Por que no definirte una enumeración, pasarla como parametro y segun su
valor llamar a una función u otra?

Más sobre el tema...



http://groups.google.es/groups?hl=e...=GGLD,GGLD:2003-41,GGLD:es&threadm=3fc7d15c%240%2429350%243b214f66%40tunews.univie.ac.at&rnum=2&prev=/groups%3Fq%3Dc%252B%252B%2Bcall%2Bfunction%2B%252Bby%2Bname%26hl%3Des%26lr%3D%26rls%3DGGLD,GGLD:2003-41,GGLD:es%26selm%3D3fc7d15c%25240%252429350%25243b214f66%2540tunews.univie.ac.at%26rnum%3D2

Un saludo
Rodrigo Corral González [MVP]

FAQ de microsoft.public.es.vc++
http://rcorral.mvps.org


Respuesta Responder a este mensaje
#4 Rodrigo Corral [MVP]
07/02/2005 - 11:56 | Informe spam
Como ultima anotación, si la función en todos los casos tiene los mismos
parametros, los suyo seria utilizar una clase base abstracta y hacer que las
clases derivadas tenga obligatoriamente que implementar esa función. Luego
simplemente utilizando un puntero a la clase base que apunte a la clase
derivada adecuada se llamaria a la función de la clase base.

Vamos, en resumidas cuentas, usar el patron Strategy.


Un saludo
Rodrigo Corral González [MVP]

FAQ de microsoft.public.es.vc++
http://rcorral.mvps.org
Respuesta Responder a este mensaje
#5 Fernando Marin
20/02/2005 - 01:43 | Informe spam
Puedes hacer un array de punteros a funciones
despues con enum puedes dar una posición a cada función

un saludo

Fernando Marin


"Aquiles" <@> escribió en el mensaje
news:
Hola a :

Necesito saber si se puede y como ...

Tengo una funcion que entre otras cosas, toma el valor de una variable de
otra clase. Para ello utilizo

pClase=(CClase *)pParent;
variable_local=pClase->variable_clase;

la cuestion es
¿se puede pasar el nombre de la variable como parametro en la llamada de
la
funcion?

algo tal que asi

CString nombre funcion ( nombrevariable)
{
variable_local=pClase->nombrevariable;
}
¿se puede? ¿como?

GRacias de antemano


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida