Foros del Web » Programación para mayores de 30 ;) » C/C++ »

[SOLUCIONADO] Agregar metodo personalizado a template lista

Estas en el tema de Agregar metodo personalizado a template lista en el foro de C/C++ en Foros del Web. Hola, Tengo un template de una lista que van a compartir varias clases... Lo que quiero saber es donde y como se agrega un metodo ...
  #1 (permalink)  
Antiguo 29/04/2015, 15:15
 
Fecha de Ingreso: marzo-2014
Mensajes: 41
Antigüedad: 10 años, 1 mes
Puntos: 0
Agregar metodo personalizado a template lista

Hola,
Tengo un template de una lista que van a compartir varias clases... Lo que quiero saber es donde y como se agrega un metodo que solo va a usar una de las clases? Por ejemplo buscar un una persona por su numero de cedula

Por ejemplo:
Código C++:
Ver original
  1. template<class T>
  2. class Lista{
  3. private:
  4.     Nodo<T>* primerNodo;
  5. public:
  6.       Lista();
  7.       ~Lista();
  8.       void agregar(T*);
  9.       T* eliminar();
  10. };


Saludos

Última edición por newb; 29/04/2015 a las 20:22
  #2 (permalink)  
Antiguo 30/04/2015, 05:04
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 6 meses
Puntos: 204
Respuesta: Agregar metodo personalizado a template lista

Pues, por ejemplo, tirando de herencia:

Código C++:
Ver original
  1. template<class T>
  2. class Lista
  3. {
  4.   protected: // <<< si lo pones private no será accesible desde las clases hijas
  5.     Nodo<T>* primerNodo;
  6.   public:
  7.     Lista();
  8.     ~Lista();
  9.     void agregar ( T* );
  10.     T* eliminar( );
  11. };
  12.  
  13. class ListaUsuarios : public Lista<Usuario>
  14. {
  15.   public:
  16.  
  17.     Usuario* BuscarPorNumeroDeCedula( int numero )
  18.     {
  19.     }
  20. };
  21.  
  22. int main( )
  23. {
  24.   ListaUsuarios listaConMetodo;
  25.   listaConMetodo.BuscarPorNumeroDeCedula( 123 ); // <--- OK
  26.  
  27.   Lista< Usuario > listaSinMetodo1;
  28.   listaSinMetodo1.BuscarPorNumeroDeCedula( 123 ); // <<--- Error de compilación
  29.  
  30.   Lista< int> listaSinMetodo2;
  31.   listaSinMetodo2.BuscarPorNumeroDeCedula( 123 ); // <<--- Error de compilación
  32. }

Un saludo

Etiquetas: c++, lista, template
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:12.