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

C++ 泛型类中的赋值运算符。C++;,c++,templates,generics,variable-assignment,operator-keyword,C++,Templates,Generics,Variable Assignment,Operator Keyword,您好,我在尝试重载泛型链接队列类中的赋值运算符时遇到问题 以下是相关代码: template<typename T> class Queue : public IQueue<T> { (...) public: Queue(); Queue(const Queue<T> &origQueue); virtual~Queue(); Queue& operator=(const Queue<T> &a

您好,我在尝试重载泛型链接队列类中的赋值运算符时遇到问题

以下是相关代码:

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;
}
模板
类队列:公共IQueue
{
(...)
公众:
队列();
队列(常量队列和原始队列);
虚拟队列();
队列和运算符=(常量队列和原始队列);
无效排队(常量T和元素);
T退出队列();
T peek()常数;
int size()常量;
};
样板
队列和队列::运算符=(常量队列和原始队列)
{
(...)
归还*这个;
}

知道我错在哪里了吗?

因为类是模板化的,所以要返回队列对象,所以返回值也需要模板化:

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

    return *this;
}
模板
队列和队列::运算符=(常量队列和原始队列)
//...^
{
归还*这个;
}

由于类是模板化的,您希望返回队列对象,因此也需要模板化返回值:

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

    return *this;
}
模板
队列和队列::运算符=(常量队列和原始队列)
//...^
{
归还*这个;
}

您得到了什么错误?队列和队列::运算符=(常量队列和origQueue)
IQueue
运算符=
签名?您得到了什么错误?队列和队列::运算符=(常量队列和origQueue)
IQueue
运算符=
签名?请注意,这仅在类外定义中是必需的。在类内部,名称被注入,您可以只使用
队列
。请注意,这仅在类外定义中是必需的。在类内部,名称被注入,您可以只使用
Queue