Функции в С++ для начинающих. Прототипы

Прототипы функций в С++.

  • Прототип функции является объявлением функции, которое сообщает компилятору имя функции, ее возвращаемый тип и типы ее параметров.
В С++ иногда необходимо предварительно описать сущность функции для дальнейшего её использования в программе. Такое предварительное описание называется прототипированием функций. Прототипы функций — они как эскизы. Для тех, кто не знает: "Эскиз — это предварительный набросок, фиксирующий замысел художественного произведения".
Прототипы функций служат некоторого рода словарём функций, которые будут задействованы в программе. Они, прототипы функций, помогают и нам видеть, какие функции существуют в коде (когда функций много, это имеет важное значение, легче не запутаться и не начать писать то, что уже было написано, например), и компилятору помогают понимать, что где-то в коде имеется функция с заявленным скелетом. Благодаря использованию прототипов функций — порядок написания функций не имеет никакого значения: что снизу-вверх, что сверху-вниз, что чехардой — всё равно.
Прототип функции отличается от самой функции тем, что у функции есть тело с описанием выполняемого внутри функции кода, а у прототипа функции тела нет. Прототипы функций должны быть описаны выше самих функций.

  • Пропуск точки с запятой в конце прототипа функции является синтаксической ошибкой.
Если в ваших планах было или будет создать прототип функции и вы забыли или забудете поставить точку с запятой, то предполагаемый вами прототип функции компилятор станет считать самой обычной функцией и ожидать от вас написание для неё внутреннего её кода.
  • В прототипе функции обязательно указывать тип функции, имя функции, типы параметров.

    • Хотя имена параметров в прототипах функций не обязательны (они игнорируются компилятором), многие программисты их указывают в целях документации.
  • Имена параметров в прототипе функции (которые, повторим, не обязательны) могут вводить в заблуждение, если они ошибочны или неосмысленны. По этой причине многие программисты создают прототипы, копируя первую строку определения соответствующей функции (если исходный код функции доступен) и добавляя в конец прототипа точку с запятой.
Под определением функции имеется в виду непосредственно функция или с пустыми фигурными скобками, или с кодом внутри фигурных скобок.
Простыми словами: ваш набросок функции должен содержать основную информацию о функции, а использование прототипов функций позволяет не заморачиваться, какая функция сверху, какая снизу:

  • Прототип функции — это своеобразный скелет, который только обозначает, что где-то в коде будет использована функция, в которой этот скелет станет основой.
Маленькая информационная табличка может помочь вам быстрее сообразить:

ПРОТОТИП
ФУНКЦИЯ

void foo();
void foo(){ код_функции}

int foo();
int foo(){ код_функции}

void foo(int);
void foo(int x){ код_функции}

void foo();
void foo(){ код_функции}

Когда вы начнёте разбивать программу на файлы, то вы, возможно, вынуждено будете применять прототипирование функций. В прототипах ничего плохого нет, прототипы функций можно воспринимать как средство выразительности, способствующее лучшему пониманию кода. Прототипы функций помогают и нам видеть некоторый набросок программы, и компилятору понимать и выискивать в коде описанную прототипом функцию.
Все комментарии на сайте проверяются, поэтому ваш комментарий может появиться не сразу. Для вставки кода в комментарий используйте теги: [php]ВАШ_КОД[/php]

3 комментария: Функции в С++ для начинающих. Прототипы

  • Артур говорит:




    0



    0
  • Nir говорит:

    Это же вроде раздела интерфейсов модуля в лазарусе, где описаны заголовки функций? Очень похоже на то.




    0



    0
    • admin говорит:

      Я не знаком с лазарусом.
      Но это просто описание названий функций для компилятора.
      Это как начать человеческий разговор с компилятором и душевно перечислить ему названия функций, которые используются и что для них нужно.

      В итоге, для компилятора не имеет значения порядок написания самих функций. Он знает о них и как они устроены.(название и параметры в них)




      0



      0

Добавить комментарий

Ваш e-mail не будет опубликован.

Поиск

 
     

Случайная книга в электронном формате

Яндекс.Метрика
НАГРАДИ АВТОРА САЙТА
WEBMONEY
R375024497470
U251140483387
Z301246203264
E149319127674

Демотиватор как забыть С++ для чайников

Выражаю свою признательность

  • Максиму очень признателен за указание на мои ошибки и неточности.
  • Sergio ===> за оказание помощи в исправлении моих ошибок
  • Gen ===> за правильное стремление помочь другим новичкам и выявления моих ошибок