在C ++中,我们可以在构造函数中使用赋值来初始化对象,或者我们可以使用初始化列表。对于const数据成员或作为对象的数据成员,初始化列表是唯一的方法。但是,当参数的名称与数据成员的名称匹配时,此>名称(名称)不起作用。如果名称相同,有没有办法做到这一点?
class A {
private:
int _x,y;
public:
A(int x, int y) : _x(x), // this works
this->y(y) // this does not work
{}
};
我想也许这是一个操作顺序问题所以我试过了:
(这 - > Y)(Y)
但这也不对。
答案 0 :(得分:5)
您只需使用构造函数初始化列表:
A(int x, int y) : _x(x), y(y) {}
没有理由在这里涉及this
。