泛型类中的赋值运算符.C++

Assignment operator in generic class. C++

本文关键字:C++ 赋值运算符 泛型类      更新时间:2023-10-16

你好,我在尝试重载通用链接队列类中的赋值运算符时遇到问题。

这是有问题的代码:

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;
}

你知道我哪里错了吗?

由于您的类是模板化的,您想要返回一个Queue对象,因此返回值也需要模板化:

template<typename T>
Queue<T>& Queue<T>::operator=(const Queue<T> &origQueue)
//...^
{
    return *this;
}