Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - jesules79

#1
Hola a todos,

Tengo hecha una practica sobre la clase List, que implementa una lista de enteros. Ahora tengo que modificarla para que acepte cualquier tipo de dato mediante plantillas.

He visto el uso de las plantillas de clases en C++, y he mirado ejemplos en internet.

El caso es que uso la estructura Node, que representa un nodo de la lista que contiene el elemento y un puntero al siguiente elemento. El elemento debe ser de cualquier tipo.

El caso es que lo aplico y me da un montón de errores que no sé en qué fallo.

list.h

#ifndef _LIST_H_
#define _LIST_H_

template <class T1>
struct Node {
   T1 info;
   Node *next;
};

template <class T2>
class List {
   private:
       T2 *_head, *_tail, *_cursor;
       int _t;
   public:
       List();
       void insertBegin(int i);


};


list.cpp

#include "list.h"
#include <cstdlib>      //Para NULL

template <class T2>
List<T2>::List() {
   _head = _cursor = _tail = NULL;
   _t = 0;
}

template <class T2>
void List::insertBegin(int i) {
   if(empty()) {           //Lista esta vacia
       T2 *aux;
       aux = new T2;
       aux->info = i;
       aux->next = _head;
       _head = _cursor = _tail = aux;
       _t++;
   }
   else {                  //Lista no esta vacia
       T2 *aux;
       aux = new T2;
       aux->info = i;
       aux->next = _head;
       _head = _cursor = aux;
       _t++;
   }
}


menulista.cpp

#include "list.h"
#include <iostream>
#include <cstdlib>      //Para system()
#include <new>          //Para bad_alloc

using namespace std;

void showmenu();

int main() {
   List<int> lint;
   List<char> lchar;




   return 0;
}


A ver si me podeis ayudar.

Un saludo