Ya anduvo, era poner todo en el mismo .h.
Gracias

On 9/26/07, Mauro Ciancio <[EMAIL PROTECTED]> wrote:
>
> 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