
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Не понял. Можете написать только нужные события
а во втором случае, та же тема с компилятором плюс потенциальный баг из-за опечаток.
опечатки проверил, если реализацию не напишешь, то получим function 'B::OnDeinit' must have a body
в общем меня устраивает как и по скорости так и по краткости такой код
пару раз запустил в терминале, все работает:
2019.11.01 15:10:05.387 tst (EURUSD,H1) void A::OnInit()
2019.11.01 15:10:05.388 tst (EURUSD,H1) void B::OnInit()
2019.11.01 15:10:05.388 tst (EURUSD,H1) void B::OnInit()
2019.11.01 15:10:07.062 tst (EURUSD,H1) void A::OnTick()
2019.11.01 15:10:07.062 tst (EURUSD,H1) void B::OnTick()
2019.11.01 15:10:07.062 tst (EURUSD,H1) void B::OnTick()
2019.11.01 15:10:33.639 tst (EURUSD,H1) void A::OnDeinit(const int)
Ого, как тема развилась!
Не могли бы вы на пальцах объяснить суть этой конструкции? Я не программист и оказалось тяжело понять что к чему.
Objects[] - это массив объектов унаследованных классов, и функция AllTick() вызывает событие в них?
Для чего используется ArrayResize в конструкторе?
Третий параметр ArrayResize опускается?
int reserve_size=0 // резервное значение размера (избыточное)
Что означает следующая запись?
OnTick() =0;
Мне тоже показалось, что не очень здорово
писать один суперкласс, который будет управлять "стадом неразумных мелких классов
Ого, как тема развилась!
Не могли бы вы на пальцах объяснить суть этой конструкции? Я не программист и оказалось тяжело понять что к чему.
Objects[] - это массив объектов унаследованных классов, и функция AllTick() вызывает событие в них?
да, но нужно прописать для каждого класса этот метод или сделать пустой метод { }
Для чего используется ArrayResize в конструкторе?
Третий параметр ArrayResize опускается?
да опускается, вернее по умолчанию, справка или распринтуйте увидите, размер массива указателей нужно же изменять если новые наследники будут?
Что означает следующая запись?
OnTick() =0;
закрыли вызов этого метода,чтобы при наследовании не было вызова к методу предка, но скорее всего и без него все будет работать, но пару билдов назад разработчики добавили эту возможность, пусть будет так
Мне тоже показалось, что не очень здорово ...
Так ведь этот суперкласс предназначен специально для классов, у которых один метод должен вызываться на каждом тике.
OnTick() =0;
Так ведь этот суперкласс предназначен специально для классов, у которых один метод должен вызываться на каждом тике.
А я чтобы к такому супер-классу не привязываться ввёл систему коллекций, для каждой ветки иерархии своя коллекция со своими специфическим наборов событий и т.о. нужно вызывать методы нескольких коллекций, а не одного для всех супер-класса. Плюсы и минусы есть у обоих подходов, мой мне как-то ближе), и кажется гибче, хотя всё зависит от общей структуры проекта, если количество объектов невысоко и постоянно, то не влом и скопипастить для каждого)
А я чтобы к такому супер-классу не привязываться ввёл систему коллекций, для каждой ветки иерархии своя коллекция со своими специфическим наборов событий и т.о. нужно вызывать методы нескольких коллекций, а не одного для всех супер-класса. Плюсы и минусы есть у обоих подходов, мой мне как-то ближе), и кажется гибче, хотя всё зависит от общей структуры проекта, если количество объектов невысоко и постоянно, то не влом и скопипастить для каждого)
Мне тоже больше нравится, когда все делается явно.
Если по изучаете архитектуру стандартных классов, то найдете много полезных рецептов.
Это да, а ещё полезно изучить труд банды четырёх, без него многие гениально-простые рецепты от взгляда могут ускользнуть.