Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Хочется (как я думаю очевидно) - получать в переменных filename переопределенные имена...
Чтоб Init() правильно отработал, его нужно вызвать после конструирования объекта.
Или нет?
Я думаю VMT инициализируется только в завершающем коде конструктора, поэтому при вызове метода в конструкторе, будет вызван метод типа переменной, а не типа конструируемого объекта.
Как-то так.
По крайней мере вот это работает:
To MetaQuotes : Если я всё правильно понял, лучше вообще запретить вызов виртуальных функций в конструкторах. Дабы.
Или уж сделать их работоспособными. В чём сомневаюсь.
Только-только познакомился с параметрическими конструкторами. Но представляется, что в примере
в выделенной строчке неправильно расставлены круглые скобки.Только-только познакомился с параметрическими конструкторами. Но представляется, что в примере
в выделенной строчке неправильно расставлены круглые скобки.Техническое сообщение (начало небольшого обсуждения на тему инициализации, в том числе и в конструкторах). Перенесено, чтобы не затерялось под тяжелой поступью новичков: https://www.mql5.com/ru/forum/58/page31#comment_66890
Вопрос на тему инициализации. По общему правилу, инициализация переменных типа string и сложных объектов осуществляется автоматически, "по умолчанию". При этом тратится определенное количество вычислительных мощностей компьютера (я называю это "тактами компьютера", сорри за дилетантские термины).
Теперь появились списки инициализации, позволяющие инициализировать переменные пользовательскими значениями. Есть ли какая-нибудь разница в скорости инициализации между автоматической инициализацией и инициализацией пользовательским значением? Иными словами, увеличивается ли количество "тактов компьютера" при использовании списков инициализации (и пользовательских значений) по сравнению с автоматической инициализацией?
А что, если несколько тактов сэкономим, это даст существенный выигрыш ? Тем более, что инициализация проводится однократно, а значения всё равно придётся присваивать впоследствии.
Лично для меня вопрос важный, поскольку хочу разобраться в технике.
Правильный подход, все бы так. Списки инициализации это следствие введения параметрических конструкторов.
Разберем два примера:
Тут все в комментах написано.
Пример 2:
Итак в варианте 1 имеем 1 вызов Init, в варианте 2 -- 2 вызова. А т.к. функция "типа" очень тяжелая, плюс налицо.TheXpert, спасибо огромное! Буду разбираться.
С Ваших слов косвенно понял, что разницы в скорости между автоинициализацией переменной типа " строка, динамический массив и сложный объект" и пользовательской инициализацией этой же переменной нет.
С Ваших слов косвенно понял, что разницы в скорости между автоинициализацией переменной типа " строка, динамический массив и сложный объект" и пользовательской инициализацией этой же переменной нет.