如何避免成员变量的双重初始化?

时间:2017-11-19 09:35:41

标签: c++ oop constructor

class Inner {
public:
  Inner() {
    std::cout << "Inner" << std::endl;
  }
};

class Outer {
public:
  Outer() {
    i = Inner();
  }

  Inner i;
};

int main() {
  Outer o;
}

以上代码打印Inner两次,表示在Outer中,Inner i;首先初始化一次,然后在其构造函数中再次初始化。如果Inner是一个相当昂贵的初始化类,这似乎非常低效。什么是避免这种双重初始化的好方法?

0 个答案:

没有答案