В этом особом контексте вы передаете только указатели, поэтому объекты, обозначенные a1
и a2
, являются объектами, указанными b1
и b2
.С другой стороны, объект A
знает, что он содержит B
, но экземпляр B
не знает, что содержится в A
.
. Поэтому я думаю, чтофункция, управляющая указанными объектами, должна быть объявлена в B
классе.Тогда, если B является членом общедоступного API A (например, с геттером), достаточно:
class B {
...
void do_something(...) {
// do something with objects pointed by b1 and b2
}
};
...
A a;
a.getB()->do_something();
...
Если B
член A
является реализацией деталь , вы должны объявить метод реле в A:
class A {
...
void do_something(...) { // delegate to the `B` member
b1->do_something(...);
}
};
...
A a;
a.do_something(...);
...