Но если вы передадите в функцию 3-й и 4-й аргументы, то эти значения будут рассматриваться вместо значений по умолчанию.
кнулся на некоторый код C ++, который выглядит следующим образом (упрощенно для этого поста):
(Вот прототип функции, расположенный вsomeCode.hpp
)
void someFunction(const double & a, double & b, const double c = 0, const double * d = 0);
(Вот первая строка тела функции, расположенного вsomeCode.cpp
это#include
«ssomeCode.hpp
)
void someFunction(const double & a, double & b, const double c, const double * d);
Могу ли я по закону позвонитьsomeFunction
с помощью:
someFunction(*ptr1, *ptr2);
и / или
someFunction(*ptr1, *ptr2, val1, &val2);
где переменныеptr1
, ptr2
, val
, а такжеval2
были определены соответствующим образом иval1
а такжеval2
не равны нулю? Почему или почему нет?
И если это допустимо, предпочтителен ли этот синтаксис по сравнению с перегрузкой функции для учета необязательных параметров?