Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Как хорошо уметь читать... :)
Тоже не плохой подход, хотя как я понял оба эти подхода расчиитаны на передачу/чтение только одного парраметра (пускай и разных типов).
А вот как интересно быть если параметров много и все их не запихать в базовый класс?
Насколько я понимаю дополнительно ввести индекс параметра который передаем (также в классе можно создать массив с параметрами уложенными в него по индексу)?
Я то же не понял...
В моём примере есть индекс, только он не числовой в явном виде, а перечисление....
Забудьте, оно того не стоит.
Interesting:
В общем, по итогам обсуждения проблемы https://www.mql5.com/ru/forum/3566/page6#comment_58280 отправил заявку в СД.
1. Не знаю, не знаю.
Думается мне, что разработчики на определенные шаги не пойдут, пожертвовав функционалом в угоду безопасности (с одной стороны это и правильно).
Отчитываюсь.
Заявка была такая:Предлагаю:
1. Уточнить раздел Справочника "Полиморфизм" в части указания того, как правильно заполнять массив shapes[10] экземплярами классов, производных от CShape (привести пример).
2. Проверить правильность написания строчки:
3. Разъяснить, нужно ли при объявлении классов выставлять фигурные скобки непосредственно после имени объявляемого класса:
class CShape{};
class CCircle{} : public CShape
class CSquare{} : public CShape
Ответ:
В справку будет добавлено расширенное описание, вот отрывок из него:
Предполагается, что в программе у нас используются объекты разного типа (CCircle и CSquare), но унаследованные от одного базового типа CShape. Полиморфизм позволяет нам создать массив объектов базового типа CShape, но при объявлении этого массива сами объекты еще неизвестны и их тип неопределен.
Решение о том, объект какого типа будет содержаться в каждом элементе массива, будет приниматься непосредственно при выполнении программы. Это подразумевает динамическое создание объектов соответствующих классов, и, следовательно, необходимость вместо самих объектов использовать указатели объектов.
Для динамического создания объектов используется оператор new, каждый такой объект нужно самостоятельно и явно удалять оператором delete. Поэтому мы объявим массив указателей типа CShape и для каждого его элемента создадим объект нужного типа (new Имя_класса), как это показано в примере скрипта:
Обратите внимание, что при уничтожении объекта оператором delete необходимо проверить тип его указателя. Удалять с помощью delete можно только объекты, имеющие указатель POINTER_DYNAMIC, для указателей другого типа будет получена ошибка.
Спасибо за сообщение, исправили №2 и №3. Будет в новых версиях справки
Вопрос. В стандартной библиотеке используются вот такие строчки
В Справочнике сказано: "Спецификатор const неприменим к членам структур и классов". Что означает вышеуказанное использование const в методе класса и каковы правила его использования в подобных случаях?
Yedelkin:
...............
Что означает вышеуказанное использование const в методе класса и каковы правила его использования в подобных случаях?
Вопрос. В стандартной библиотеке используются вот такие строчки
В Справочнике сказано: "Спецификатор const неприменим к членам структур и классов". Что означает вышеуказанное использование const в методе класса и каковы правила его использования в подобных случаях?
Член структуры/класса - это одно, а метод - это другое.
Метод, описанный как const означает, что он не меняет состояние/члены своего класса. То есть, после вызова такого метода внутреннее состояние класса остается неизменным. Используется для дополнительного указания компилятору, чтобы тот проверял попытки изменить члены класса.
Член структуры/класса - это одно, а метод - это другое.
Метод, описанный как const означает, что он не меняет состояние/члены своего класса. То есть, после вызова такого метода внутреннее состояние класса остается неизменным. Используется для дополнительного указания компилятору, чтобы тот проверял попытки изменить члены класса.
Ух ты. Спасибо! А я голову ломал.
Кстати, логичный вопрос, раз уж разговор зашел -- инструкции volatile нет и не предвидится?
А как её можно применить? , ведь потоки между собой не взаимодействуют,
вот если бы данные можно было свободно передавать между потоками тогда да, была бы необходимость в такой инструкции.
Добрый день.
Такой вопрос
по коду выше
что я сделал не так или это в принципе недостижимо в МТ5?
Хочется (как я думаю очевидно) - получать в переменных filename переопределенные имена...