对C++运算符过载的一些疑问

Some doubts about C ++ operator overloading

本文关键字:C++ 运算符      更新时间:2023-10-16

我无法理解C++中类定义中的这部分,尤其是运算符和*this,我对这些有点困惑。我是C++的初学者(

SKNode& operator=(const SKNode*& node)
{
key = node->key;
for (int i = 0; i < MAXLEVEL; i++)
{
forward[i] = node->forward[i];
}
return *this;
}

此重载的 assigment 运算符将指定的节点分配给对象本身。
例如,在实现时:

A a1;
A a2;
A a3;
a1 = a2;

最后一条语句调用实例的运算符a1,实际上是将a2的内容复制到a1中。

运算符返回*this。换句话说,是对自身的引用。
这样,您可以使用构造:

a1 = a2 = a3;

这将首先调用实例a2上的重载运算符,将a3分配给a2,然后调用a1的重载运算符,将a2分配给a1