C ++ calling non-default constructor as a member

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?

+4
source share
1 answer

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 = B(17); 
+13
source

All Articles