Функции являются фундаментальным элементом программирования на C++. Этот урок посвящен созданию собственных функций, их использованию и особенностям работы с ними. Мы уже сталкивались с функциями, такими как get (для считывания пользовательского ввода) и main (главная функция программы). Теперь настало время научиться создавать свои.
Что такое функция?
Функция – это блок кода, предназначенный для выполнения определенной задачи. Использование функций позволяет избежать дублирования кода и делает программу более модульной и читаемой. Если в программе многократно повторяется один и тот же фрагмент кода, его следует вынести в отдельную функцию. Функция может принимать параметры (аргументы) и возвращать результат, или же просто выполнять какие-либо действия. Например, функция возведения числа в квадрат – это готовый инструмент, который мы можем использовать, не задумываясь о его внутренней реализации.
Создание функции
Функции в C++ не могут быть созданы внутри других функций. Их объявление должно находиться вне функции main. Для создания функции необходимо указать:
- Тип возвращаемого значения: Если функция ничего не возвращает, используется ключевое слово void. В противном случае указывается тип данных, который функция возвращает (например, int, float, double и т.д.).
- Имя функции: Имя должно быть осмысленным и отражать назначение функции.
- Параметры (аргументы): Передаются в круглых скобках. Каждый параметр описывается типом данных и именем.
- Тело функции: Блок кода, заключенный в фигурные скобки {}, который выполняет действия функции.
Пример функции print, которая выводит на экран переданный ей параметр:
void print(int param) {
std::cout << param << std::endl;
}
Вызов этой функции осуществляется следующим образом:
print(234); // Выведет 234 на экран
Функции с возвращаемым значением
Функции могут возвращать значения. Для этого используется ключевое слово return. Рассмотрим функцию sum, которая суммирует два числа типа float и возвращает результат:
float sum(float x, float y) {
float result = x + y;
return result;
}
Переменные, объявленные внутри функции, являются локальными и не доступны извне функции. Например, переменная result в функции sum доступна только внутри этой функции. Глобальные переменные, объявленные вне функций, доступны во всех частях программы.
Пример вызова функции sum:
float a = 23.23;
float b = 50.41;
float result = sum(a, b);
std::cout << result << std::endl; // Выведет сумму a и b
Прототипы функций
Если функция объявлена после функции main, необходимо использовать прототипы функций. Прототип – это объявление функции без её тела, заканчивающееся точкой с запятой. Он позволяет компилятору знать о существовании функции до её фактического определения.
Пример прототипа функции print:
void print(int param);
Пример прототипа функции sum:
float sum(float x, float y);
Рекурсия
Функция может вызывать саму себя – это называется рекурсией. Функция не может напрямую вызывать другие функции, объявленные после нее, без использования прототипов.
Функции являются мощным инструментом в C++, позволяющим структурировать код, избегать повторов и улучшать читаемость программы. Правильное использование функций – залог создания эффективного и поддерживаемого кода. Вынос повторяющегося кода в отдельные функции – хорошая практика программирования.