下面的代码会导致C++出现问题吗?

dai*_*isy 1 c++ class

我看到有人在C++类中编写这样的代码:

int foo ( int dummy ) 
{
   this->dummy = dummy;
}
Run Code Online (Sandbox Code Playgroud)

我们应该使用这样的代码,它会导致问题吗?

我试图编译这样的东西,它似乎工作.

@update:我发布的主要是关于名称dummy和内部变量this->dummy,以及它是否导致问题

Pub*_*bby 5

对于一个成员函数来说这是完全正常的,除了你错过了一个return声明.dummy将影子成员变量,因此您this->用来引用成员.

int foo ( int dummy ) 
{
   this->dummy = dummy; // set member to argument
   return this->dummy;
}
Run Code Online (Sandbox Code Playgroud)

对于比简单的set函数更复杂的事情,不要这样做,因为它令人困惑.

int foo ( int dummy )  // Bad practise! Rename this param as the function isn't a setter
{
   this->dummy = dummy * 2 + 1; 
   return this->dummy;
}
Run Code Online (Sandbox Code Playgroud)