赋值给*这个(* this = val)是什么?

时间:2011-01-19 10:36:34

标签: c++ qt this

我正在浏览Qt资源,并注意到了这个

QUuid &operator=(const GUID &guid)
{
    *this = QUuid(guid);
    return *this;
}

我以前从没见过“this”的作业。赋予“this”的作用是什么?

3 个答案:

答案 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'类型的新对象。