<div dir="ltr">Hola Miguel Ángel,<div class="gmail_extra"><br></div><div class="gmail_extra">El problema es que no tienes objetos polimórficos. Defines el mapa (o array asociativo) de esta manera,</div><div class="gmail_extra"><br></div><div class="gmail_extra">typedef map < string, ParentFunctor > FunctorsMap;<br></div><div class="gmail_extra"><br></div><div class="gmail_extra">Para que exista polimorfismo, necesitas manejar los objetos (polimórficos) a través de punteros o referencias. Lo anterior debería ser,</div><div class="gmail_extra"><br></div><div class="gmail_extra">typedef map< string, ParentFunctor * > FunctorsMap;<br></div><div class="gmail_extra"><br></div><div class="gmail_extra">O si lo prefieres,</div><div class="gmail_extra"><div class="gmail_extra"><br></div><div class="gmail_extra">typedef map< string, ParentFunctor & > FunctorsMap;<br></div><div><br></div><div><br></div><div>Espero haber aclarado la duda.<br></div></div><div class="gmail_extra"><br></div><div class="gmail_extra">Steven</div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra"><br><div class="gmail_quote">2015-03-11 3:03 GMT-04:00 Miguel Ángel Torres Fernández-Píñar <span dir="ltr"><<a href="mailto:miguelangeltorresfp@gmail.com" target="_blank">miguelangeltorresfp@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr">Hola, buenos días ...<div><br></div><div>Estoy tratando de implementar un sistema ( sencillo ) de registro de funciones.</div><div><br></div><div>Una clase en la que ( usando a modo de diccionario ) podamos registrar cualquier función asociándola con un id ( string ).</div><div><br></div><div>Luego podamos ejecutar cualquier función de las registradas tan solo pasándole el id correspondiente.</div><div><br></div><div>Lo estoy tratando de resolver usando functors.</div><div><br></div><div>Para ello creo un functor padre del que hereden todos los demás, y así pueda hacer uso de polimorfismo.</div><div><br></div><div>El problema es que al final siempre se llama al método sobrecargado ( operator() ) del padre.</div><div><br></div><div>Bueno, les dejo el código por si alguien puede y le apetece echarle un ojo.</div><div><br></div><div>Muchas gracias.</div><div><br></div><div>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.</div></div></blockquote></div></div></div>