... > C++ > Параметры и аргументы...

Параметры и аргументы функций на C++

НАВИГАЦИЯ ПО СТРАНИЦЕ

Параметры функций Значения по умолчанию Передача по значению

Параметры функций — это способ передачи данных внутрь функции, аргументы — фактические значения, передаваемые функции при её вызове. Давайте рассмотрим основы использования параметров и аргументов в C++.

Параметры функций:

Параметры функции объявляются в её заголовке и указывают, какие данные функция ожидает получить при вызове. Пример:

#include <iostream>

// Функция с параметрами
void greet(std::string name, int age) {
    std::cout << "Привет, " << name << "! Тебе " << age << " лет." << std::endl;
}

int main() {
    // Вызов функции с аргументами
    greet("Иван", 25);

    return 0;
}

В приведенном примере функция greet имеет два параметра: name типа std::string и age типа int. При вызове функции в main() передаются соответствующие аргументы.

Значения по умолчанию:

Вы можете установить значения по умолчанию для параметров функции, что позволяет вызывать функцию с меньшим числом аргументов. Пример:

#include <iostream>

// Функция с параметрами по умолчанию
void greet(std::string name = "Гость", int age = 18) {
    std::cout << "Привет, " << name << "! Тебе " << age << " лет." << std::endl;
}

int main() {
    // Вызов функции без указания аргументов
    greet();

    // Вызов функции с указанием одного аргумента
    greet("Мария");

    return 0;
}

Передача по значению и по ссылке:

По умолчанию параметры передаются в функцию "по значению", что означает, что функция работает с копией аргументов. Однако вы также можете передавать параметры "по ссылке", чтобы функция могла изменять оригинальные данные. Пример:

#include <iostream>

// Функция с параметром по значению
void squareByValue(int x) {
    x = x * x;
}

// Функция с параметром по ссылке
void squareByReference(int &x) {
    x = x * x;
}

int main() {
    int number = 5;

    // Вызов функции с параметром по значению
    squareByValue(number);
    std::cout << "По значению: " << number << std::endl;  // Вывод: 5

    // Вызов функции с параметром по ссылке
    squareByReference(number);
    std::cout << "По ссылке: " << number << std::endl;   // Вывод: 25

    return 0;
}

В этом примере squareByValue изменяет копию аргумента, а squareByReference изменяет сам аргумент.