重载运算符 += 用于 C++ 中的链表



我有一个重载运算符 += 的赋值,因此它将新数据添加到列表中。因此,列表 += 数据应该意味着 list=list+data,这在逻辑上类似于运算符 += 对 int 等基本类型所做的。我对链表很烂,我刚刚弄清楚如何使用函数来做到这一点,所以我不知道在这种情况下该怎么办。

List& List::operator+=(const T& newData)
{
last_ = (!first_ ? first_ : last_->next_) = new Elem(newData);
++listSize_;
return *this;
};
where T is from template <typenameT> class List {...} "

可以吗,我的意思是我可以使用函数中的代码吗

List& addToList (const T& newData) {same code snippet}

,它会给我预期的结果吗?我不这么认为,因为它从不在代码中使用运算符本身,这让我有点困惑。

很明显,我是编码初学者,很抱歉我的 cpp :)

如果为类定义operator+=,则在类的实例上调用它:

yourlist += somedata;

等于调用任何其他方法:

yourlist.operator+=( somedata );

它只是一个句法糖。因此,如您所见,这与任何其他成员函数几乎相同(除了它允许您以特殊方式调用它(。因此,通过调用方法addToList()实现operator+=,反之亦然是完全可以的。

相关内容

  • 没有找到相关文章

最新更新