C ++ связь между объектами - PullRequest
       16

C ++ связь между объектами

0 голосов
/ 24 сентября 2011

Я уверен, что этот вопрос задавался (и отвечался) раньше, поэтому, если да, пожалуйста, свяжите меня с предыдущим обсуждением ...

В C ++, скажем, у меня есть объект типа ClassAкоторый включает в себя закрытый член переменной объекта типа ClassB.Как бы я мог вызвать ссылку на объект ClassA в ClassB?

Я использую шаблон проектирования Observer, где объект ClassA является «субъектом», а объект в ClassB, скажем,типа ClassC, является «наблюдателем» объекта ClassA.Поэтому при инициализации объекта ClassC внутри ClassB один из его параметров должен быть ссылкой на его объект «субъект».

1 Ответ

1 голос
/ 24 сентября 2011

Вкратце:

struct A;

struct B : C {
  B(A &a) : c(a) { }

  C c;
};

struct A {
  A() : b(*this) { }

  private:
    B b;
};

B не получает специального доступа к A только потому, что он является участником.Вы должны явно передать ссылку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...