我看到有人在C++类中编写这样的代码:
int foo ( int dummy )
{
this->dummy = dummy;
}
Run Code Online (Sandbox Code Playgroud)
我们应该使用这样的代码,它会导致问题吗?
我试图编译这样的东西,它似乎工作.
@update:我发布的主要是关于名称dummy和内部变量this->dummy,以及它是否导致问题
对于一个成员函数来说这是完全正常的,除了你错过了一个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)