Оператор присваивания в общем классе. 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;
}