假设我有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?
中的成员答案 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);