在使用C ++构造函数时何时必须使用'this'?

时间:2016-04-19 17:24:11

标签: c++

dictionary = dict(zip(out_head, (select11)))

VS

class Int {
    int n;

public:

    Int(int n) {
        this->n = n;
    }

};

这两者之间的区别是什么?在创建给定类的新对象时应该何时使用class Int { int n; public: Int(int n) : n(n){ } }; 关键字?

1 个答案:

答案 0 :(得分:4)

最大的区别是第二个是推荐的方法,因为它避免了双重初始化属性。 int是一个微不足道的案例,但你可以想象你可能有一些昂贵的结构会被初始化两次:

Complicated(const HeavyObject& _h) : h(_h) {
  // h only initialized once
}

Complicated(const HeavyObject& _h) {
  // h already initialized with default constructor

  // Copy to object, potentially initializing all over again.
  this->h = _h;
}