Eva*_*van 5 c++ variables prototype initialization function
我遇到过一些看起来像这样的C++代码(本文简化):
(这是函数原型中的位置someCode.hpp)
void someFunction(const double & a, double & b, const double c = 0, const double * d = 0);
Run Code Online (Sandbox Code Playgroud)
(这里是位于函数体的第一行someCode.cpp说#include的someCode.hpp)
void someFunction(const double & a, double & b, const double c, const double * d);
Run Code Online (Sandbox Code Playgroud)
我可以合法地someFunction使用:
someFunction(*ptr1, *ptr2);
Run Code Online (Sandbox Code Playgroud)
和/或
someFunction(*ptr1, *ptr2, val1, &val2);
Run Code Online (Sandbox Code Playgroud)
其中的变量ptr1,ptr2,val,和val2已经适当定义,val1并且val2不等于零?为什么或者为什么不?
如果它是合法的,这种语法是否优先于重载函数以考虑可选参数?