Ошибки, баги, вопросы - страница 2563
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Igor Makanu:
как и если программист принимает решение использовать оператор разрешения контекста ,значит он осознанно отказывается от помощи компилятора по выявления нарушения целостности данных в классе, существуют классические способы получения методов и полей без оператора разрешения контекста
эээ по-моему вы перекурили ООП, отдохните, а потом со свежей головой. оператор разрешения контекста определяет видимость, но никак не влияет на доступ.
эээ по-моему вы перекурили ООП, отдохните, а потом со свежей головой. оператор разрешения контекста определяет видимость, но никак не влияет на доступ.
ну я как бы сам решу, что курить и когда отдыхать )))
ЗЫ: фокусов всегда много в любом языке с доступом к содержимому памяти, хабр почитываю там в комментах регулярные терки то питону.то по С++, еще раз - есть более гуманные способы работы с полями и методами, если решил, что так быстрее, ну значит не греши на то, что в итоге получишь - во всех компиляторах всегда можно было влезть куда не следует )))
не знаю, могу точно утверждать, что пару месяцев назад админ @Ilyas объяснял порядок инициализации статиков, причем упомянул, что статик методы и статик поля инициализируются вместе с глобальными переменными при запуске MQL-программы...дальше поиском по его сообщениям
спорить не готов и не хочу, но тексту справки поведение статик методов соответствует
"private – разрешает доступ к переменным и методам класса только из методов данного класса."
В каком месте не понятно слово "только"?
OnStart не является методом класса А, согласно примеру.
"private – разрешает доступ к переменным и методам класса только из методов данного класса."
В каком месте не понятно слово "только"?
OnStart не является методом класса А, согласно примеру.
речь не о модификаторе private, а о модификаторе static - сделайте тесты и увидите как в MQL ведет себя static
не знаю, могу точно утверждать, что пару месяцев назад админ @Ilyas объяснял порядок инициализации статиков, причем упомянул, что статик методы и статик поля инициализируются вместе с глобальными переменными при запуске MQL-программы...дальше поиском по его сообщениям
спорить не готов и не хочу, но тексту справки поведение статик методов соответствует
ну и имхо, которое не считаю нужным подтверждать аргументами - MQL большими шагами в строну поведения программ на C# движется,там похожая ситуация, как и если программист принимает решение использовать оператор разрешения контекста ,значит он осознанно отказывается от помощи компилятора по выявления нарушения целостности данных в классе, существуют классические способы получения методов и полей без оператора разрешения контекста
UPD: понемногу решил переписать свою библиотеку MQL, с ужасом замечаю, что пишу как видел в популярных кодах на MQL имена методов и полей совпадающих с именами зарезервированных слов...имхо это тоже шаг в сторону отказа от помощи компилятора при "разваливании" зависимостей.... кактотак )))
https://pikabu.ru/story/nevozmozhno_tak_nevozmozhno_2129852
?
странная ситуация, со стаитиками давно работает все вне класса. а я тут распинаюсь.... ради прикола воспроизведите у себя код:
Вы видите экземпляр объекта? ... а он есть в MQL ;)
ЗЫ: причем есть на уровне справки... ко мне какие претензии?
https://www.mql5.com/ru/docs/basis/oop/staticmembers
Отсутствие возможности объявлять статически члены класса привело бы к необходимости объявлять эти данные на глобальном уровне программы. Это разорвало бы отношения между данными и их классом, а также не согласуется с основной парадигмой ООП – объединение в классе данных и методов для их обработки. Статический член позволяет данным класса, которые не специфичны для отдельного экземпляра, существовать в области видимости класса.
?
странная ситуация, со стаитиками давно работает все вне класса. а я тут распинаюсь.... ради прикола воспроизведите у себя код:
Вы видите экземпляр объекта? ... а он есть в MQL ;)
ЗЫ: причем есть на уровне справки... ко мне какие претензии?
https://www.mql5.com/ru/docs/basis/oop/staticmembers
К статикам применимы все те же правила (private, protected, public), просто они не требуют создания объекта.
В общем случае нет: например публичный статик нельзя ограничить в производном классе
хм... как бы обьяснить абсурдность ситуации... Вы чего меня квотите в очередной раз? я предложил Вам ознакомиться с сообщениями админов (разработчиков), я показал справку которую они написали, Вы от меня чего хотите своими картинками?
я не размышляю почему оно так, читаю форум и справку и делаю как рекомендуют разработчики. Считаете нужным ну напишите в "комитет по защите стандартов С++", в ООН... ну хотя бы админу в ЛС, если слабо, но тогда заквотьте сообщения разработчиков и добейтесь своего!
ЗЫ: у меня как то получается вставлять исходники, а не картинки, почему у вас так не получилось?
2019.09.17 22:11:49.534 tst (EURUSD,H1) 1:print
2019.09.17 22:11:49.535 tst (EURUSD,H1) 2:print
2019.09.17 22:11:49.535 tst (EURUSD,H1) 3:print
2019.09.17 22:11:49.535 tst (EURUSD,H1) a1 = 2
2019.09.17 22:11:49.535 tst (EURUSD,H1) a1 = 3
2019.09.17 22:11:49.535 tst (EURUSD,H1) a1 = 4
В коде ошибка только в доступе к private-методу. Этот баг появился недавно.