let's say I have class A and class B. B is used as a member in A. B does not have a default constructor, but one that requires a parameter.
class B { B(int i) {} }; class A { B m_B; A() { m_B(17); //this gives an error } };
How can I use B as a member in A?
Use an initialization list.
class B { public: B(int i) {} }; class A { B m_B; public: A() : m_B(17) {} };
BTW, reset m_B somewhere outside the constructor, the correct syntax is:
m_B
m_B = B(17);