У меня есть следующий С++-класс:
// Header-File
class A
{
public:
A();
private:
B m_B;
C m_C;
};
// cpp-File
A::A()
: m_B(1)
{
m_B.doSomething();
m_B.doMore();
m_C = C(m_B.getSomeValue());
}
Теперь я хотел бы избежать class A
вызова любого конструктора C m_C
. Потому что в последней строке в A::A()
я все равно сам инициализирую m_C
, потому что мне нужно сначала подготовить m_B
. Я мог бы предоставить пустой конструктор по умолчанию для class B
. Но это не идея.
Я уже пытался добавить m_C(NULL)
в список инициализации A::A()
. Иногда это срабатывало, иногда сообщалось, что нет конструктора, принимающего NULL
в качестве аргумента.
Итак, как я могу оставить m_C
неинициализированным? Я знаю, что с указателями работает способ m_C(NULL)
. И я не хочу выделять его динамически, используя new
.
Любая идея приветствуется.