我应该在C++中为成员变量和函数参数使用相同的名称

Ant*_*ton 22 c++ parameters

我想知道在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它将成为自我赋值.


111*_*111 8

通常人们只是在变量后面加下一个下划线,或者为函数参数使用较短的描述性较小的var名称.

我个人不喜欢同名的东西,因为在阅读时,很容易出错.