c ++将非默认构造函数作为成员调用

时间:2010-09-04 18:49:56

标签: c++

假设我有A类和B类.B用作A中的成员.B没有默认构造函数,但需要参数。

class B {
  B(int i) {}
};


class A {

 B m_B;

 A()
 {
    m_B(17); //this gives an error
 }

};

我如何仍然使用B作为A?

中的成员

1 个答案:

答案 0 :(得分:13)

使用初始化列表。

class B {
  public:
    B(int i) {}
};

class A {
    B m_B;
  public:
    A() : m_B(17) {}
};

BTW,要在构造函数之外的某处重置m_B,正确的语法是:

m_B = B(17);