maestro7it_education
Функции: объявление и вызов
1. Определение функций
В C++ функции объявляются и определяются следующим образом:
Объявление функции:
int add(int a, int b); // Объявление функции
Определение функции:
int add(int a, int b) { return a + b; // Реализация функции}
Объявление функции включает тип возвращаемого значения, имя функции и список параметров.
Определение функции включает в себя реализацию того, что функция должна делать.
2. Аргументы функций и возвращаемые значения
Функции могут принимать аргументы и возвращать значения.
Аргументы могут быть переданы по значению, по ссылке или через указатель.
Передача по значению:
void printValue(int x) { std::cout << "Value: " << x << std::endl;}
Передача по ссылке:
void increment(int &x) { x++;}
Передача через указатель:
void increment(int *x) { (*x)++;}
Возвращаемые значения:
Функция может возвращать значения любого типа, например:
double divide(double a, double b) { if (b != 0) { return a / b; } else { return 0; // Обработка деления на ноль }}
3. Замыкания и контексты функций
В C++ замыкания (или лямбда-функции) позволяют создавать анонимные функции, которые могут захватывать переменные из окружающего контекста.
Пример лямбда-функции:
#include <iostream>
int main() { int x = 10; auto lambda = [x](int y) { return x + y; };
std::cout << lambda(5) << std::endl; // Вывод: 15 return 0;}
Здесь лямбда-функция
захватывает переменную x
из окружающего контекста
.
Синтаксис [x]
указывает на то, что x захватывается по значению. Для захвата по ссылке используется [&]
.
Пример захвата по ссылке:
#include <iostream>
int main() { int x = 10; auto lambda = [&x](int y) { x += y; return x; };
std::cout << lambda(5) << std::endl; // Вывод: 15 std::cout << x << std::endl; // Вывод: 15 (x изменен) return 0;}
В этом примере x захватывается по ссылке, что позволяет изменять его значение внутри лямбда-функции.
Автор: Дуплей Максим Игоревич
Дата: 07.09.2024
Версия 1.0