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

C++ c++;:没有默认构造函数的初始化列表,c++,initializer-list,C++,Initializer List,如果我有一个没有默认构造函数的类a和一个类B class B { private: A m_a; public: B(A a) : m_a(a) {} }; m_a现在是如何初始化的? 由A的赋值运算符或复制构造函数执行?由复制构造函数执行,因为它正在进行复制初始化 赋值运算符用于对现有对象进行赋值,而不是对新对象进行初始化。复制构造函数通常情况下,我希望您确实无法使用赋值来初始化某些对象。到那时,它已经初始化了。

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

class B {
  private:
    A m_a;

  public:
    B(A a) : m_a(a) {} 
};
m_a现在是如何初始化的?
由A的赋值运算符或复制构造函数执行?

由复制构造函数执行,因为它正在进行复制初始化


赋值运算符用于对现有对象进行赋值,而不是对新对象进行初始化。

复制构造函数通常情况下,我希望您确实无法使用赋值来初始化某些对象。到那时,它已经初始化了。