0

假设我有一个像这样的类:

Class MyClass 
{ 
  int myVar1;
  int myVar2;

  void myMethod(); 
}

下面的两个赋值有什么不同吗?

void MyClass::myMethod()
{
   //VARIABLE ASSIGNMENT
   myVar1 = 99;

   //USING POINTER TO CLASS
   this->myVar2 = 99;
}

有什么用

这->

变量赋值中的指针(除了其他情况,例如通过函数传递类等)?

4

3 回答 3

5

这是同一件事,除非您碰巧在范围内有两个同名的变量。在这种情况下,您可以使用 this-> 进行区分。

于 2012-05-23T10:35:31.577 回答
4

在以下情况下会有所不同:

void MyClass::myMethod(int myVar1)
{
   myVar1 = 99; //doesn't change the member

   this->myVar1 = 99; //changes the member
}

在你的情况下,没有区别。

于 2012-05-23T10:36:30.370 回答
3

没有区别。有时使用this->帮助消除歧义,但不是在这里。

于 2012-05-23T10:35:23.247 回答