Функции в C++ – небольшие подпрограммы, позволяющие выносить повторяющийся код в отдельные блоки. Это улучшает читаемость и структуру кода, делая его более организованным и удобным для работы. Мы уже сталкивались с функциями: main – основная функция, с которой начинается выполнение программы; встроенные функции, такие как setlocale, предоставляющие готовый функционал (например, устанавливают кодировку). В этом уроке мы научимся создавать и использовать собственные функции.
Создание собственной функции
Все функции в C++ должны находиться вне других функций. Нельзя объявлять функцию внутри другой функции. Рекомендуется размещать объявление функций над функцией main, иначе функция может быть невидима внутри main.
Рассмотрим пример создания функции, которая ничего не возвращает:
void Print() {
std::cout << "Hello" << std::endl;
}
- void указывает, что функция не возвращает никакого значения. void – специальный тип данных, используемый для обозначения отсутствия возвращаемого значения.
- Print – имя функции (можно использовать любое имя, избегая специальных символов).
- () – круглые скобки обозначают параметры функции (в данном случае параметров нет).
- {} – фигурные скобки заключают тело функции – код, который выполняется при вызове функции.
- std::cout << "Hello" << std::endl; – вывод строки «Hello» на экран с переводом курсора на новую строку.
Функции сами по себе не выполняются. Их нужно вызывать в коде:
int main() {
Print(); // Вызов функции Print
return 0;
}
Передача параметров в функцию
Функции могут принимать параметры – данные, передаваемые в функцию для обработки. Для этого при объявлении функции в круглых скобках указываются параметры с указанием их типа и имени:
void Print(std::string word) {
std::cout << word << std::endl;
}
Теперь функция Print принимает один параметр – строку word. Вызов функции с параметром:
int main() {
Print("Hello");
Print("World");
Print("!");
return 0;
}
Функции с возвращаемым значением
Функции могут возвращать значения. Для этого указывается тип возвращаемого значения перед именем функции, а внутри функции используется оператор return:
int Add(int a, int b) {
return a + b;
}
Эта функция принимает два целых числа (int a, int b), складывает их и возвращает результат. Вызов функции и использование возвращаемого значения:
int main() {
int res1 = Add(10, 5);
int res2 = Add(2, 3);
if (res1 > res2) {
std::cout << res1 << std::endl;
} else {
std::cout << res2 << std::endl;
}
return 0;
}
Объявление скелетов функций
Для удобства организации кода, особенно в больших проектах, можно объявлять прототипы функций в начале файла, а полную реализацию функций размещать в конце. Объявление прототипа – это только заголовок функции с точкой с запятой в конце:
void Print(std::string word); // Прототип функции Print
int Add(int a, int b); // Прототип функции Add
int main() {
// ... код с использованием функций Print и Add ...
return 0;
}
void Print(std::string word) { // Полная реализация функции Print
// ... тело функции ...
}
int Add(int a, int b) { // Полная реализация функции Add
// ... тело функции ...
}
Это позволяет компилятору понимать, что такие функции существуют и будут определены позже, предотвращая ошибки.
В этом уроке мы рассмотрели основы создания и использования функций в C++. Функции являются мощным инструментом для организации и упрощения кода, и мы будем продолжать изучать их возможности в последующих уроках.