Я сталкивался с кодом C ++, который выглядит следующим образом (упрощенно для этого поста):
(Вот прототип функции, расположенный в someCode.hpp
)
void someFunction(const double & a, double & b, const double c = 0, const double * d = 0);
(Вот первая строка тела функции, расположенная в someCode.cpp
, что #include
s someCode.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
не равны нулю? Почему или почему нет?
И если это допустимо, предпочтителен ли этот синтаксис по сравнению с перегрузкой функции для учета необязательных параметров?