[C con Clase] Buenos días a todos. Problema usando herencia con objetos de tipo "Functor"

Davidson, Steven srd4121 en njit.edu
Mie Mar 11 13:56:07 CET 2015


Hola Miguel Ángel,

El problema es que no tienes objetos polimórficos. Defines el mapa (o array
asociativo) de esta manera,

typedef map < string, ParentFunctor > FunctorsMap;

Para que exista polimorfismo, necesitas manejar los objetos (polimórficos)
a través de punteros o referencias. Lo anterior debería ser,

typedef map< string, ParentFunctor * > FunctorsMap;

O si lo prefieres,

typedef map< string, ParentFunctor & > FunctorsMap;


Espero haber aclarado la duda.

Steven



2015-03-11 3:03 GMT-04:00 Miguel Ángel Torres Fernández-Píñar <
miguelangeltorresfp en gmail.com>:

> Hola, buenos días ...
>
> Estoy tratando de implementar un sistema ( sencillo ) de registro de
> funciones.
>
> Una clase en la que ( usando a modo de diccionario ) podamos registrar
> cualquier función asociándola con un id ( string ).
>
> Luego podamos ejecutar cualquier función de las registradas tan solo
> pasándole el id correspondiente.
>
> Lo estoy tratando de resolver usando functors.
>
> Para ello creo un functor padre del que hereden todos los demás, y así
> pueda hacer uso de polimorfismo.
>
> El problema es que al final siempre se llama al método sobrecargado (
> operator() ) del padre.
>
> Bueno, les dejo el código por si alguien puede y le apetece echarle un ojo.
>
> Muchas gracias.
>
> PD - he visto también que esto se puede resolver de otras maneras.
> Cualquier sugerencia es bienvenida, todo esto es para aprender. Por eso me
> interesa saber en qué me estoy equivocando.
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20150311/d481390c/attachment.html>


Más información sobre la lista de distribución Cconclase