Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗cpPmFnDV 286 of 390 menu
◀ ▶

Значения параметров по умолчанию в C++

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

Пусть для примера есть функция show, которая выводит в консоль квадрат числа из параметра num1:

#include <iostream> void show(int num) { std::cout << num * num << "\n"; } int main() { return 0; }

Сделаем так, чтобы параметр num по умолчанию имел числовое значение 0 прямо в объявлении функции:

#include <iostream> void show(int num = 0) { std::cout << num * num << "\n"; } int main() { return 0; }

Значение по умолчанию пишут только у последних параметров. Если значение задано не всем, его ставят в конце списка, а параметры без значения оставляют в начале. Когда таких значений несколько, их пишут подряд у последних параметров.

Проверим вызов, в котором аргумент передан. Квадрат числа 2 равен 4, и эта строка появится в консоли:

#include <iostream> void show(int num = 0) { std::cout << num * num << "\n"; } int main() { show(2); // выведет 4 return 0; }

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

#include <iostream> void show(int num = 0) { std::cout << num * num << "\n"; } int main() { show(); // выведет 0 return 0; }

У функции show значение по умолчанию задано только второму параметру num2. Параметр num1 указывают при каждом вызове, и значение по умолчанию ему не задают:

#include <iostream> void show(int num1, int num2 = 0) { std::cout << num1 + num2 << "\n"; } int main() { show(4, 1); // выведет 5 show(4); // выведет 4 return 0; }

Дана функция:

#include <iostream> void show(int num = 5) { std::cout << num * num << "\n"; } int main() { return 0; }

Функция вызывается так:

show(2); show(3); show();

Расскажите, каким будет результат каждого из вызовов функции.

Дана функция:

#include <iostream> void show(int num1 = 0, int num2 = 0) { std::cout << num1 + num2 << "\n"; } int main() { return 0; }

Функция вызывается так:

show(2, 3); show(3); show();

Расскажите, каким будет результат каждого из вызовов функции.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить