4
, допустим, у меня есть класс A и класс B. B используется как член в A. B не имеет конструктора по умолчанию, а имеет тот, который требует параметра.C++ вызов конструктора не по умолчанию в качестве члена
class B {
B(int i) {}
};
class A {
B m_B;
A()
{
m_B(17); //this gives an error
}
};
Как я могу использовать B как член в A?
В этом примере, если что последняя строка 'M_B = В (17)' назывались от ' A() ', конструктор по умолчанию' B' по-прежнему вызывает вызов? Если да, есть ли способ предотвратить это? –
@Steven: (1) Да. (2) Используйте список инициализации для инициализации 'm_B'. – kennytm