Справочник MQL4 Основы языка Функции
ФункцииВсякая задача может быть разбита на подзадачи, каждую из которых можно либо непосредственно представить в виде кода, либо разбить на еще более мелкие подзадачи. Данный метод называется пошаговым уточнением. Функции служат для записи программного кода этих непосредственно решаемых подзадач. Код, описывающий, что делает функция, называется определением функции:
Все, что находится перед первой фигурной скобкой, составляет заголовок определения функции, а то, что находится между фигурными скобками, является телом определения функции. Заголовок функции включает в себя описание типа возвращаемого значения, имени (идентификатора) и формальных параметров. Количество параметров, передаваемых в функцию, ограничено и не может превышать 64. Функция может вызываться из других частей программы столько раз, сколько необходимо. По сути, возвращаемый тип, идентификатор функции и типы параметров составляют прототип функции. Прототип функции – это объявление функции, но не ее определение. Благодаря явному объявлению возвращаемого типа и списка типов аргументов, при обращении к функциям возможны строгая проверка типов и неявные преобразования типов. Особенно часто объявления функций используются в классах для улучшения читаемости кода. Определение функции должно точно соответствовать ее объявлению. Каждая объявленная функция должна быть определена. Пример:
Оператор return может возвращать значение выражения, стоящего в этом операторе. Значение выражения при необходимости преобразуется к типу результата функции. Можно возвращать простые типы, простые структуры, указатели объектов. При помощи оператора return нельзя возвращать любые массивы, объекты классов, переменные типа сложных структур. Функция, которая не возвращает значения, должна быть описана как имеющая тип void. Пример:
Параметры, передаваемые в функцию, могут иметь умолчательные значения, которые задаются константами соответствующего типа. Пример:
Если какому-либо параметру было назначено умолчательное значение, то все последующие параметры также должны иметь умолчательное значение. Пример неправильного объявления:
Смотри также Перегрузка, Виртуальные функции, Полиморфизм |