- 2
Значения по умолчанию для параметров
#include <iostream> using namespace std; int sum(int a=2, int b=3) { int result = a + b; return (result); } int main() { int x = 4; int y = 5; //calling the function with both parameters int result = sum(x, y); cout << result << endl; //calling the function without b result = sum(x); cout << result << endl; //calling the function without a result = sum(y); cout << result << endl; return 0; } /* output 9 7 8 */ Почему 8 ?
8 ответов
+ 3
Если вы хотите использовать первый параметр по умолчанию, а второй задать вручную, то никак. Это невозможно без каких-то дополнительных хаков.
+ 1
В функции указаны параметры по умолчанию int a=2, int b=3, они используются когда при вызове функции они опускаются.
Почему 7 и почему 8:
7 = 4 + 3
8 = 5 + 3
+ 1
функции неважно под какими названиями будут те переменные, которые вы ей передаёте.
sum(4,4) -> 4 + 4 = 8
sum(1) -> 1 + 3 = 4
sum(5) -> 5 + 3 = 8
sum() -> 2 + 3 = 5
+ 1
Взаимно :)
0
why
//calling the function without a
result = sum(y);
cout << result << endl;
output 8?
why not 7?
0
это я понял, в третьем вызове отсутствует параметр "х", то есть "а" а значит он должен ровняться по умолчанию 2, получается 2+5=7, разве не так?
0
как тогда первый параметр опустить что бы он был по умолчанию? sum ( ,y)? получается что "х" что "у" будут подставляться под первый параметр если одину из переменных не указывать?
0
спасибо за помощь, с наступающим новым годом и счастья =)