Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
А поперечные связи между классами-наследниками имеющие общий корень где то в глубине иерархии, как устанавливаются?
Например: Класс F и класс Z - конечные звенья цепочек наследования с общем корнем в иерархии, - классом A.
Как из класса F получить данные или методы класса Z?
Никак. Нет такого. Но это и не нужно.
После создания объектов можно указатель одного объекта передать второму, а указатель второго первому.
Хотя, если разговор именно про класс, то через два двоеточия к чему угодно можно обратиться. Только зачем оно нужно? Кое когда, конечно нужно, но это крайне второстепенная возможность ООП.
Никак. Нет такого. Но это и не нужно.
После создания объектов можно указатель оного объекта передать второму, а указатель второго первому.
Хотя, если разговор именно про класс, то через два двоеточия к чему угодно можно обратиться. Только зачем оно нужно?
Пример: Класс F хранит методы Цвет и Длинна, а Класс Z хранит методы Звук и Ширина.
Появляется Объект, у которого два свойства - Длинна и Ширина, но вычисляются они разных классах F и Z. Как быть? Создать отдельный класс с повторением этих методов, или как то к ним обращаться? (Через четырехточие?)
Пример: Класс F хранит методы Цвет и Длинна, а Класс Z хранит методы Звук и Ширина.
Появляется Объект, у которого два свойства - Длинна и Ширина, но вычисляются они разных классах F и Z. Как быть? Создать отдельный класс с повторением этих методов, или как то к ним обращаться? (Через четырехточие?)
Можно создать новый класс и включить в него классы F и Z.
Можно создать новый класс и включить в него классы F и Z.
Можно создать новый класс и включить в него классы F и Z.
А можно в классе, где нужны данные другого сделать метод получения указателя на нужный класс.
Класс-"смычку"? Ясно. Спс.
Можно просто получить указатель на нужный класс, и по указателю получить объект класса. Но нужно внимательно это делать - чтобы не получить указатель на пустой или новый объект класса.
Можно просто получить указатель на нужный класс, и по указателю получить объект класса. Но нужно внимательно это делать - чтобы не получить указатель на пустой объект класса.
Класс-"смычку"? Ясно. Спс.
В примере
В классе Y содержатся переменные с типами класса F и Z.
Но если у вас уже где-то созданы и используются объекты классов F и Z, то в объекте Y вы не получите к ним доступа. В объекте Y будут новые два объекта классов F и Z.
А чтобы получить доступ к уже созданным ранее, и уже используемым объектам классов F и Z, нужно получить ссылки на объекты F и Z в классе Y - тогда класс Y сможет оперировать теми данными, которые уже записаны в F и Z, а не использовать новые и девственно чистые F и Z.
Но если вы сразу создаёте такой объект-смычку, то F и Z в нём дадут доступ к классам F и Z, и их заполнение нужно делать только через класс Y - опять-таки дать из него доступ к объектам F и Z, получить указатель на нужный объект и работать с ним по указателю.
Тонкости. Ясно. Иерархия наследования удобна при четкой классифицируемости, предопределенности и однозначности данных. При усложнении объектов, могут появляться не предусмотренные в классах сочетания методов и свойств, что требует построения "смычек" - т.е. поперечных связей между классами. Это не всегда удобно и может ломать красивую схему распределения и заставлять ее пересматривать.
Ломать ничего не нужно - нужно добавить метод в класс, дающий указатель на требуемый объект другого класса.
В последних статьях я таким образом передаю в торговые объекты указатели на уже созданные ранее и работающие, и имеющие уже накопленные данные объекты класса коллекции символов и объекту текущего аккаунта. И торговый класс работает с ними так, как будто он их всегда имел.