这是我在编写 C++ 时经常做的事情,我一直想知道它是否是一个“坏”习惯(这种行为是否标准化?)
假设我有一堂课:
Class Foo {
  public:
    Foo(int x) {
      //this->x is the member "x" of Foo
      //x is the paramater "x" to the function
      this->x = x; //Sets Foo::x to x (parameter x)
    }
  private:
    int x;
};
请注意Foo::Foo(int x),参数是如何命名x的,它与成员变量的名称相同Foo。
我通常只使用 usethis->x = x;为成员变量分配参数的值,这似乎对我有用(我通常使用 MSVC)。在 MSVC(和我认为的 GCC)中,访问x将访问参数 namedx而不是成员named x。这是所有 c++ 编译器的标准化行为吗?是否有任何东西阻止编译器仅x与成员变量而不是参数变量关联?(例如:this->x;相当于this->x = this->x;)