maestro7it_education

Форк
0

README.md

Функции: объявление и вызов

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

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.