在Java中,通常,我可以将构造函数的参数与成员变量同名.
public A(int x)
{
this.x = x;
}
private int x;
Run Code Online (Sandbox Code Playgroud)
在C++中,我不能.通常,我必须这样做.
public:
A(int x_) : x(x_)
{
}
private:
int x;
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法?由于构造函数参数名称看起来很难看,当IDE IntelliSense弹出构造函数参数窗口时.
小智 5
在C++中,您可以,如果您需要:
struct A {
int x;
A(int x) : x(x) {
foo(this->x);
// if you want the member instead of the parameter here
}
};
Run Code Online (Sandbox Code Playgroud)
虽然我也常常为成员使用风格名称(例如_x),但我是为非公开成员做的.如果x在这个例子中是公开的,我会像这样做,并且如果我认为它更具可读性,请查看重命名ctor的参数.
编辑:由于人们似乎越来越偏离,我会澄清_x.该标准保留了一些标识符名称:
由于成员的范围属于班级,因此不属于第三类.也就是说,不继续偏离轨道会很好.:)如果您愿意,可以随意在C++中提出有关保留标识符的问题,并在评论中发布链接.