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