Оператор присваивания в общем классе. C++

Здравствуйте, у меня проблемы с попыткой перегрузить оператор присваивания в моем общем классе связанных очередей.

Вот код, о котором идет речь:

template<typename T> 
class Queue : public IQueue<T>
{
(...)
public: 
    Queue();
    Queue(const Queue<T> &origQueue);
    virtual~Queue();
    Queue& operator=(const Queue<T> &origQueue);
    void enqueue(const T& element);
    T dequeue();
    T peek() const;
    int size() const;

};



template<typename T>
Queue& Queue<T>::operator=(const Queue<T> &origQueue)
{
(...)

    return *this;
}

Есть идеи, где я иду не так?

1 ответ

Решение

Поскольку ваш класс является шаблонным, вы хотите вернуть объект Queue, поэтому возвращаемое значение также должно быть шаблонным:

template<typename T>
Queue<T>& Queue<T>::operator=(const Queue<T> &origQueue)
//...^
{

    return *this;
}
Другие вопросы по тегам