Я думаю, что это действительно новый вопрос, но я так и не нашел ответа. Я не знаю, как именно сформулировать этот вопрос, но я часто нахожу, что мне нужно получить доступ к объектам, которые находятся «далеко» от текущего объекта с точки зрения текущей иерархии. Я просто хочу убедиться, что это правильный (единственный) способ сделать это.
Это также относится к передаче параметров из основного. Я считаю, что некоторые объекты, удаленные от основного, должны быть переданы с параметром несколько раз. Как объект, удаленный от основного, получает информацию из командной строки?
Например, для первого случая, для 4 классов ...
class A{
B b;
//need to check status of D
//choice 1
b.get_c().get_d().get_status();
//choice 2
const C& c = b.get_c();
const D& d = c.get_d();
d.get_status();
};
class B{
public:
C c;
const C& get_c() {return c;}
};
class C{
public:
D d;
const D& get_d() {return d;}
};
class D{
public:
bool check_status();
};
Скажите что-то вроде: A - это машина, B - это дверная сборка, C - это дверь, D - это замок. Затем А должен проверить, скажем, заблокирован ли, иначе предотвратить запуск.
Вариант 3 - напрямую вызвать метод D из A, мне нужно сделать несколько слоев check_status () в C, B и A и вернуть D, C, B.check_status ().
Разве все эти вызовы подобъектов (если код был немного сложнее) не требуют много времени?
Спасибо.