Since your class is templated, you wanna return a Queue object, so the return value needs to be templated too:
template<typename T>
Queue<T>& Queue<T>::operator=(const Queue<T> &origQueue)
//...^
{
return *this;
}
Question
Hello I have problems trying to overload the assignment operator in my generic linked-queue class.
Here is the code in question:
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;
}
Any ideas of where I'm going wrong?
Solution
Since your class is templated, you wanna return a Queue object, so the return value needs to be templated too:
template<typename T>
Queue<T>& Queue<T>::operator=(const Queue<T> &origQueue)
//...^
{
return *this;
}