相关疑难解决方法(0)

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

我想知道在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)中,成员变量以不同的颜色显示.这就是为什么似乎没有必要添加任何前缀.

c++ parameters

22
推荐指数
2
解决办法
1万
查看次数

参数的名称与成员变量的名称相同是不是很难?

例如,这是以下任何一种情况

  • 不好的做法
  • 不可读
  • 效率低下(对this指针的调用)
  • 任何其他原因导致这样做很糟糕

.

class Person {

    public:
        string name;
        Person(string name) {
            this->name = name;
        }

};
Run Code Online (Sandbox Code Playgroud)

PS

怎么样 Person(string name) : name(name) { }

c++ parameters syntax this

8
推荐指数
2
解决办法
2万
查看次数

访问成员字段,其名称与本地变量(或参数)相同

请考虑以下代码段:

struct S
{
   S( const int a ) 
   { 
      this->a = a; // option 1
      S::a = a; // option 2
   }
   int a;
};
Run Code Online (Sandbox Code Playgroud)

选项1是否等同于选项2?是否存在一种形式比另一种形式更好的情况?标准的哪个条款描述了这些选项?

c++ this name-hiding

4
推荐指数
1
解决办法
2105
查看次数

标签 统计

c++ ×3

parameters ×2

this ×2

name-hiding ×1

syntax ×1