从蟒蛇,在那里你会分配与成员即将self关键字我不知道结果会是什么在C++中不使用this关键字,因为编译器会指派成员的照顾.
换句话说,当我这样做时会发生什么:
class SomeClass
{
private:
int someVariable;
public:
void setSomeVariable(int someVariable);
};
void SomeClass::setSomeVariable(int someVariable)
{
someVariable = someVariable;
}
Run Code Online (Sandbox Code Playgroud)
由于编译器没有抱怨,我想知道这是否是按照约定为成员编写访问器的正确方法,并且如果确定了行为(不像例如C++中函数参数的评估)
在您的情况下,类成员someVariable被传递给函数的参数遮蔽.
所以你的代码执行一个简单的自我赋值:someVariable = someVariable是一个等价的表达式someVariable.
为了消除歧义,请使用 this->someVariable = someVariable;
(我将承认我m_为班级成员和s_静态成员采用了老式的前缀.但是近年来这种做法已经失宠了,而且几乎是Java中的亵渎.)