我想知道在C++中为成员变量和函数参数使用相同的名称是否是一个好习惯.我来自Java背景,这很常见.我想知道在C++中是否有缺点做以下(代码工作):
class Player
{
public:
void setState(PlayerState *state)
{
this->state = state;
}
private:
PlayerState *state;
}
Run Code Online (Sandbox Code Playgroud)
谢谢你的答案.据我了解,虽然它有效,但更好的做法是使用某种标记来区分成员变量和函数参数,例如:
_ or m_
Run Code Online (Sandbox Code Playgroud)
在某些编辑器(如Qt Designer)中,成员变量以不同的颜色显示.这就是为什么似乎没有必要添加任何前缀.
Naw*_*waz 15
这是正确的,并且标准允许.但更好的方法是对成员变量使用一些命名约定.例如,您可以m_
为所有成员变量使用前缀,然后任何人都可以推断出是什么m_state
.它增加了代码的可读性,并避免了常见错误.
另外,如果m_state
是成员,那么你不必写this->m_state = state
成员函数,你可以写m_state = state
.在您当前的代码中,this->
部分变得必要,没有state = state
它将成为自我赋值.