Здравствуйте. Помогите разобраться.
Тема: Значение по умолчанию для параметров.
Вот тут, на скриншоте кода- "int sum(int a, int b=42)"
Параметру "b", присвоено значение числа 42, а далее, во втором вызове функции не передан второй параметр, поэтому вместо него используется значение по умолчанию 42.
Вопрос:
Как второй вызов функции, определяет, какой параметр по умолчанию использовать? И почему, если параметру "а" присвоить число, и убрать число от параметра "b", то в итоге, выдаёт ошибку? И зачем тогда пустой параметр " а" если ему нельзя присвоить число и число присвоено параметру "b"?

1 Первый по порядку. (a) и далее
2 Есс-но будет ошибка, т. к. если убрать =42 - функция будет явно требовать 2 параметра, а Вы пытаетесь передать 1 и значение b параметра тогда не определено.
Если Вы про случай sum(int a=10, int b=42), и sum(,5) - то в С++ нельзя пропускать параметры в отличие от н-р VB
Параметры функции -бывают формальные (указанные в описании функциии ее теле) и фактические.
Если формальному параметру присваивается значение по умолчанию (как b) то его можно не указывать при некоторых вызовах, оно подставится само. Для параметра а недопустимо не указывать фактическое значение.
Второе, при вызове функции фактические параметры подставляются в формальные в порядке, как описано в сигнатуре функции, по порядку, поэтому путаницы тут никакой не будет. Более того, даже при вызове функции из dll на другом языке программирования порядок тоже соблюдается, есть специальные соглашения.
>Как второй вызов функции, определяет, какой параметр по умолчанию использовать?
порядок имеет значение
>почему, если параметру "а" присвоить число, и убрать число от параметра "b", то в итоге, выдаёт ошибку?
параметры считываются справа налево, что создает пустой аргумент "a"
https://stackoverflow.com/a/1123761/6229350
>И зачем тогда пустой параметр " а" если ему нельзя присвоить число и число присвоено параметру "b"?
скорее всего в виде примера, редко используются значения по умолчанию
https://en.cppreference.com/w/cpp/language/default_arguments