Hola!
Estoy implementando una cola con templates en c++ y cuando
trato de instanciar un objeto me tira:

  [Linker error] undefined reference to `Queue<int>::Queue()'
>   [Linker error] undefined reference to `Queue<int>::~Queue()'


Este es el .h

template <typename E>
class Queue {
      public:
             Queue();
             virtual ~Queue();
             void push(E* element);
             E* pop();
             bool isEmpty();
      private:
              std::vector<E*> elements;
};


Este el cpp:

template <class E> inline
Queue<E>::~Queue() {
       E* element;
       while (!isEmpty()) {
             element = pop();
             delete element;
       }
}

template <class E> inline
bool Queue<E>::isEmpty() {
     return !this->elements.size();
}

template <class E> inline
void Queue<E>::push(E* element) {
     elements.push_back(element);
}

template <class E> inline
E* Queue<E>::pop() {
      E* element = 0;
      if (!isEmpty()) {
             element = elements[0];
             elements.erase(elements.begin());
      }
      return element;
}

Si alguien tiene alguna sugerencia, bienvenida.

Gracias, Mauro.
_______________________________________________
Lista de correo Programacion.
[email protected]
http://listas.fi.uba.ar/mailman/listinfo/programacion

Responder a