这是我在编写 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;
)