Разработчик MQL5 приблизил функционал языка к аналогу С++.
Есть такой вопрос к нему по спецификаторам. Работают ли в MQL5 следующие утверждения?
1) В С++ существуют внутренние связи, внешние связи и отсутствие
связей.
Лично у меня по 2-му 4-му пп вопросов нет. А вот по 3-му есть...
У меня по 1-му п. вопрос - что это за хреновина такая? Может имеется в виду область видимости?
Да, практически... но, имхо, корректнее говорить про связь...
Лично сам не слышал такого термина, как внешняя область видимости... или я не прав?
Чтобы не городить отсебятину, процитирую первоисточник:
Описанием определяется область видимости имени. Это значит, что имя может использоваться только в определенной части текста программы.
Если имя описано в функции (обычно его называют "локальным именем"), то область видимости имени простирается от точки описания до конца блока, в котором появилось это описание.
Если имя не находится в описании функции или класса (его обычно называют "глобальным именем"), то область видимости простирается от точки описания до конца файла,
в котором появилось это описание.
Описание имени в блоке может скрывать описание в объемлющем блоке или глобальное имя; т.е. имя может быть переопределено так, что оно будет обозначать другой объект внутри блока.
После выхода из блока прежнее значение имени (если оно было) восстанавливается.
У меня по 1-му п. вопрос - что это за хреновина такая? Может имеется в виду область видимости?
поддерживаю вопрос и особенно что "мелким шрифтом"
Денис, у вас с именованием понятий явный перебор - помню вашу статью о UML - https://www.mql5.com/ru/articles/304 - там тоже были заморочки с использованием якобы "устоявшейся" терминологии.
понятно, что сейчас преобладает переводная литература и каждый переводчик один и тот же термин переводит по своему.
но ещё задолго до ООП, UML была устоявшаяся и понятная русскому слуху терминология.
но называть "область видимости" - "связями", пусть "внешними свзями", "внутренними связями" и ещё "отсутствием связи" - требует детального пояснения и обоснования.
если Вы вводите новый термин, так поясните что за хреновину вы имеете ввиду
- 2011.11.18
- Dennis Kirichenko
- www.mql5.com
Чтобы не городить отсебятину, процитирую первоисточник:
Dima_S, я спросил у разработчика относительно приведённых утверждений. Накопал их отсюда.
А с вашим первоисточником никак не поспоришь :-)
Согласен, что понятие "видимость" используется чаще. Особенно в среде MQL.
- www.quizful.net
поддерживаю вопрос и особенно что "мелким шрифтом"
Денис, у вас с именованием понятий явный перебор - помню вашу статью о UML - https://www.mql5.com/ru/articles/304 - там тоже были заморочки с использованием якобы "устоявшейся" терминологии.
понятно, что сейчас преобладает переводная литература и каждый переводчик один и тот же термин переводит по своему.
но ещё задолго до ООП, UML была устоявшаяся и понятная русскому слуху терминология.
но называть "область видимости" - "связями", пусть "внешними свзями", "внутренними связями" и ещё "отсутствием связи" - требует детального пояснения и обоснования.
если Вы вводите новый термин, так поясните что за хреновину вы имеете ввиду
abolk, я ссылку привёл на терминологию. Эти термины ввёл не я. Просто в описании MQL5 мало инфы по спецификаторам, пытаюсь поэтому что-то выяснить...
А про UML. Всё таки это другой язык, терминология которого по естественным причинам отличается от сишной и mql'евской. Свои аргументы я изложил при ответе на конкретные вопросы. А ваше мнение про заморочки считаю субъективным восприятием проблематики.
Мрак. Читаем:
языках с\с++ существуют внутренние связи, внешние связи и отсутствие связей. Глобальные переменные имеют внешние связи и это позволяет получить доступ к ним из любой части программы. Если к глобальным переменным добавить спецификатор static, то глобальные переменные утратят внешние связи и будут иметь только внутренние связи, т.е. будут доступны только внутри файла, в котором они были описаны. Локальные переменные не имеют связей и поэтому доступны только внутри блока где они были описаны.
Если переменная хранит описание некоего объекта, то применение термина "связь" понятна и обоснована. Через связь получается доступ к информации об объекте.
Но как получить доступ к информации об объекте, которая хранится в локальных переменных? Если судя по тексту статьи - локальные переменные не имеют связей?
Dima_S, я спросил у разработчика относительно приведённых утверждений. Накопал их отсюда.
А с вашим первоисточником никак не поспоришь :-)
Согласен, что понятие "видимость" используется чаще. Особенно в среде MQL.
Это цитата из книги Б. Страуструпа (разработчика С++).
У него, кажется, и сайт есть - так что можете поспорить))
я ссылку привёл на терминологию. Эти термины ввёл не я.
а кто сказал, что автор ввёл термины, которые появились с лёкой руки переводчика?
переводчик - это же не автор статьи.
вопрос к Вам: вы можете пояснить сами что спрашиваете?
вот вы написали, что корректней говорить не "область видимости", а "связь":
denkir:
Да, практически... но, имхо, корректнее говорить про связь...
Лично сам не слышал такого термина, как внешняя область видимости... или я не прав?
поясните почему так считаете
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Разработчик MQL5 приблизил функционал языка к аналогу С++.
Есть такой вопрос к нему по спецификаторам. Работают ли в MQL5 следующие утверждения?
1) В С++ существуют внутренние связи, внешние связи и отсутствие связей.
2) Глобальные переменные имеют внешние связи и это позволяет получить доступ к ним из любой части программы.
3) Если к глобальным переменным добавить спецификатор static, то глобальные переменные утратят внешние связи и будут иметь только внутренние связи, т.е. будут доступны только внутри файла, в котором они были описаны.
4) Локальные переменные не имеют связей и поэтому доступны только внутри блока где они были описаны.
Лично у меня по 2-му 4-му пп вопросов нет. А вот по 3-му есть...