为什么C ++初始化列表不适用于此 - >

时间:2014-08-01 16:36:10

标签: c++ initializer-list

在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)

但这也不对。

1 个答案:

答案 0 :(得分:5)

您只需使用构造函数初始化列表:

  A(int x, int y) : _x(x), y(y) {}

没有理由在这里涉及this