Функции
Функции - это блоки кода, которые можно многократно использовать в программе. Они позволяют разработчикам организовывать код, избегать его дублирования и упрощать логику программы.
Возвращаемые значения
-
Любой тип, включая пользовательские классы
-
void
— если функция ничего не возвращает -
return
— завершает функцию
Параметры функции
Часто возникает ситуация, когда нам необходимо передать функции некоторую информацию, в этом случае используются аргументы функции.
В C++ есть несколько способов передать аргументы в функцию, рассмотрим их.
Передача по значению (копия):Параметры по умолчанию
В этом примере при объявлении функции, мы обозначили в скобках переменную name
, однако мы дали ей значение по умолчанию и если мы вызываем функцию без аргументов greet()
, то переменная name
принимает заранее определённое в функции значение.
Перегрузка функций (Function Overloading)
Можно создать несколько функций с одним именем, но разными параметрами:
Как работает:
Компилятор выбирает версию по типу аргументов.
Указатели на функции
Функции можно хранить в переменных:
Современная альтернатива: std::function
(из <functional>
)
Лямбда-функции (C++11 и выше)
Лямбды позволяют определить функцию прямо там, где она нужна, без создания отдельной именованной функции.
Анонимные функции "на месте":
Рекомендации
-
Одна функция — одна задача
-
Используйте осмысленные имена
-
Избегайте длинных функций (оптимально 10-15 строк)
-
Для сложных параметров используйте константные ссылки:
void processBigObject(const BigObject& obj); -
Избегайте глобальных переменных — передавайте параметры явно