SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: jrbcast en Miércoles 17 de Febrero de 2010, 18:54

Título: clase que almacena objetos de distintos tipos... sobrecarga
Publicado por: jrbcast en Miércoles 17 de Febrero de 2010, 18:54
Buenas,

Tengo una duda que puede ser un tanto compleja  :devil:  y que espero que alguien sea capaz de resolverme. Tengo una clase cuyo "pseudocodigo" podría ser:

class Collection
{
   std::map<char *, void *> elements;
   Collection();
   ~Collection();
   
   void addElement( char * name, void * value )
   {
   }
   
   int getValue( char * name )
   {
   }

   double getValue( char * name )
   {
   }
}

Ok, el "mapa" de la clase puede almacenar objetos de diferente tipo puesto que almacena punteros a void. Ahora imaginad que yo sé dentro de la clase Collection qué tipo tiene cada objeto almacenado. Lo que me gustaría saber es cómo puedo llamar desde fuera a un método "getValue" que ya me devuelva el tipo correcto... No sé si me he explicado...  :huh:

Gracias por adelantado.
Título: Re: clase que almacena objetos de distintos tipos... sobrecarga
Publicado por: Eternal Idol en Jueves 18 de Febrero de 2010, 09:43
Ahi getValue devuelve int, lo maximo que podes hacer es que devuelva void * y donde lo quieras usar hacer el casting a la clase correspondiente ...