Я хотел бы использовать списки инициализаторов для инициализации объектов, чтобы упростить управление объектами, но проблема в том, что объекты ссылаются друг на друга.Списки инициализаторов с внутренними ссылками
//B::B(A &a) //The only available constructor for B
class AB
{
A m_a;
B m_b;
AB()
: m_a()
, m_b(m_a)
...
};
Это разрешено стандартом? Из того, что я понимаю, это должно быть, учитывая, что объявление участника в классе - это A, тогда B, порядок в списке инициализации не имеет значения, поскольку они будут инициализированы их физическим порядком в классе.
Будьте осторожны с вашим конструктором копирования и оператором присваивания копии. –
IIRC, они не сгенерированы, если объект содержит указатели или ссылки? – Coder
@Coder: Это неверно. –