我只是想知道* this和this->之间的区别是什么?何时使用它。我认为*这是当前的对象,这个 - >指向当前对象。
答案 0 :(得分:6)
this
是指向当前对象的指针。 *this
是指针指向的值,即当前对象。 this->
是(*this).
的简写,例如this->a
与(*this).a
相同。
答案 1 :(得分:1)
*this
是this
上的间接运算符的应用程序。此表达式求值为this
指向的对象。 this->
是指针运算符成员的应用程序。此运算符用于取消引用指针并在一个运算符中选择成员。 这两个都在这里描述:http://en.cppreference.com/w/cpp/language/operator_member_access
这些都不是特定的this
指针。运算符以相同的方式应用于任何指针。
答案 2 :(得分:0)
this
是指向当前对象的指针。它隐含在所有对象方法中。
*this
取消引用this
指针this->
是(*this).
它就像取消引用和点(用于访问结构或类的成员,但缩写为一个运算符。
答案 3 :(得分:0)
this
是指向当前对象的指针。 *
和->
运算符是标准指针运算符,分别1)取消引用指针(返回指向的值),2)访问指向的对象的成员。
因此,在这种情况下,*this
是当前对象,this->Member
访问"会员"该对象的成员,即好像在做(*this).Member
。