c ++:没有默认构造函数的初始化列表

时间:2014-07-21 12:07:57

标签: c++ initializer-list

如果我有一个没有默认构造函数的类A和一个类B

class B {
  private:
    A m_a;

  public:
    B(A a) : m_a(a) {} 
};

m_a现在如何初始化? 通过A的赋值运算符或复制构造函数?

1 个答案:

答案 0 :(得分:3)

通过复制构造函数,因为它是复制初始化的。

赋值运算符用于赋值给现有对象,永远不会用于初始化新对象。