Ale*_*lex 3 c++ methods arguments class instance
我可以使用一个方法来接受与持有类成员相同名称的参数吗?我试着用这个:
class Foo {
public:
int x, y;
void set_values(int x, int y)
{
x = x;
y = y;
};
};
Run Code Online (Sandbox Code Playgroud)
......但它似乎不起作用.
有没有办法访问我正在使用的命名空间的实例,类似于JavaScript this或Python self?
kdt*_*kdt 14
通过使用成员变量的命名约定来避免这种混淆通常是个好主意.例如,camelCaseWithUnderScore_很常见.这样你就会最终得到x_ = x;,这仍然有点大声朗读,但在屏幕上相当明确.
如果你绝对需要调用相同的变量和参数,那么你可以使用this指针来指定:
class Foo {
public:
int x, y;
void set_values(int x, int y)
{
this->x = x;
this->y = y;
}
};
Run Code Online (Sandbox Code Playgroud)
顺便说一下,请注意类定义上的尾部分号 - 这是成功编译所需的.
是的,您应该能够使用"this"关键字(这是C++中的指针)来编写它:
class Foo {
public:
int x, y;
void set_values(int x, int y)
{
this->x = x;
this->y = y;
}
}
Run Code Online (Sandbox Code Playgroud)