nicializando variável no cabeçalho da função C

Encontrei algum código C ++ que se parece com isso (simplificado para este post):

(Aqui está o protótipo de função localizado emsomeCode.hpp)

void someFunction(const double & a, double & b, const double c = 0, const double * d = 0);

(Aqui está a primeira linha do corpo da função localizada emsomeCode.cpp aquele#include 'ssomeCode.hpp)

void someFunction(const double & a, double & b, const double c, const double * d);

Posso legalmente ligar parasomeFunction usando:

someFunction(*ptr1, *ptr2);

e / ou

someFunction(*ptr1, *ptr2, val1, &val2);

onde as variáveisptr1, ptr2, val eval2 foram definidos adequadamente eval1 eval2 não é igual a zero? Por que ou por que não

E se for legal, essa sintaxe é preferível contra sobrecarregar uma função para contabilizar os parâmetros opcionais?

questionAnswers(4)

yourAnswerToTheQuestion