У меня есть следующий класс C ++:
// 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());
}
Теперь я хотел бы избежать класса A
для вызова любого конструктора из C m_C
. Потому что в последней строке в A :: A ()
я в любом случае собираюсь инициализировать m_C
сам, потому что сначала мне нужно подготовить m_B
. Я мог бы предоставить пустой конструктор по умолчанию для класса B
. Но идея не в этом.
Я уже пытался добавить m_C (NULL)
в список инициализации A :: A ()
. Иногда это работало, иногда говорилось, что нет конструктора, принимающего NULL
в качестве аргумента.
Так как я могу оставить m_C
неинициализированным? Я знаю, что с указателями работает путь m_C (NULL)
. И я не хочу размещать его динамически, используя new
.
Любая идея приветствуется.