操作员重新分配功能/施工回报是什么?

时间:2012-01-30 04:53:54

标签: c++

我有以下函数/构造函数/方法(我不确定它是什么)

List<T>& List<T>::operator=(const List<T> &x)

其中List是链表,这应该做分配。但是,我不确定这应该归还什么。 Eclipse一直告诉我控件到达非void函数的末尾;但是,我不确定究竟是什么。我是C ++的新手,所以如果可能,请保持简单的答案。谢谢:))

2 个答案:

答案 0 :(得分:3)

通常,赋值运算符返回对象本身的引用,因此只需使用return *this;结束函数。如果赋值表达式具有受让人的值,则允许您编写a = b = c;if ((a = get_data()) == c)等内容。

答案 1 :(得分:1)

它是=类的重载List<T>运算符,它应该返回对类类型的引用。返回引用允许返回值充当l值,并允许其在链接调用中使用,如:

a = b = c;

您应该返回*this

解释它是什么:

List<T>& List<T>::operator = (const List<T> &x)
^^^^^^^  ^^^^^^^  ^^^^^^^^ ^  ^^^^^^^^^^^^^^^^ <------------- Parameter being passed to =
Return Type |         |    |
            |         |    |<------------- operator being overloaded
            |       Keyword operator
         Class whose operator is being overloaded