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

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

Язык С++ отличается тем, что он очень разнообразен. В нём (особенно в современном) столько всего наворочено, что изучение и понимание его может занять длительное время, а большинство программистов используют процентов 20 его возможностей (ну это я так думаю, никаких исследований я, конечно, не проводил - это чисто интуитивное мнение).

Но про определение прототипов функций надо знать. Потому как это одна из визитных карточек С++ (хотя может такое было и до его появления - старички пусть поправят).

Суть в том, что функция может быть определена в любой части исходного файла. Например, в самом конце его. Однако разбор кода компилятором идёт сверху вниз. И если, например, у нас есть функция Sum(), которая определена в конце файла, то компилятор, встретив имя этой функции до её определения просто не поймёт, с чем он имеет дело, и выдаст ошибку. Поэтому ему надо как-то заранее подсказать, что такая функция где-то есть.

Для этого и существует прототип - предварительное объявление функции в начале программы. То есть для того, чтобы компилятор знал, что у нас в программе есть наша функция, мы должны в начале исходного кода написать полное имя этой функции с указанием типа возвращаемого значения (прототип).

О функциях любого языка программирования можно рассказывать очень долго. Поэтому я время от времени возвращаюсь к этому вопросу. Если говорить о функциях С++, то я уже писал о них здесь, здесь и здесь.

Здесь главное не забывать, что в прототипе должно быть ПОЛНОЕ имя функции с указанием типа возвращаемого значения. Иначе компилятор выдаст ошибку. Поскольку, как мы уже знаем, функции с одинаковым именем, но, например, разным количеством параметров, являются разными функциями.

На этом всё. Подписывайтесь на канал, чтобы ничего не пропустить.