我正在浏览Qt资源,并注意到了这个
QUuid &operator=(const GUID &guid)
{
*this = QUuid(guid);
return *this;
}
我以前从没见过“this”的作业。赋予“this”的作用是什么?
答案 0 :(得分:15)
这不是this
的赋值,而是this
指向的对象。这将有效地在当前对象上调用operator=( QUuid const & )
。
答案 1 :(得分:4)
它只是调用QUuid &operator=(const QUuid& quUid);
。
答案 2 :(得分:1)
'this'只是指向调用当前方法的对象的指针。更改'this'后面的值(通过使用'* this'取消引用指针并指定另一个对象)将调用者的对象修改为另一个。
在您的示例中,'operator ='的调用者可能会执行以下操作:
GUID guid = guid(...) ;
QUuid uid = guid ;
根据'operator ='的定义,此操作将'guid'复制转换为'QUuid'类型的新对象。