【问题标题】:Assignment operator in generic class. C++泛型类中的赋值运算符。 C++
【发布时间】:2014-05-24 14:30:40
【问题描述】:

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

这里是有问题的代码:

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

对我哪里出错有任何想法吗?

【问题讨论】:

  • 你得到什么错误?
  • 队列&队列::operator=(const Queue &origQueue)
  • IQueueoperator= 签名?

标签: c++ templates generics variable-assignment operator-keyword


【解决方案1】:

由于你的类是模板化的,你想返回一个 Queue 对象,所以返回值也需要模板化:

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

    return *this;
}

【讨论】:

  • 请注意,这仅在类外定义中是必需的。在类中,名称被注入,您可以只使用Queue
猜你喜欢
  • 2021-02-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多