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
。