Class A
{
A(B& b) : mb(b)
{
// I will not access anything from B here
}
B& mb;
};
Class B
{
B(): a(*this)
{}
A a;
}
Иногда я сталкиваюсь с такой ситуацией, когда содержащийся объект должен использовать функциональность контейнеров. Ссылка на объект контейнера в содержащемся объекте, кажется, лучший способ сделать это. Конечно, я мог бы сделать это с указателем, таким образом, у меня мог бы быть сеттер setB(B* b) {mb = b;}
, который я мог бы вызвать позже, когда я уверен, что B инициализирован, но я бы предпочел сделать это со ссылкой, что означает, что мне нужно инициализировать это в конструкторе, отсюда и проблема.