У меня проблема с необязательным параметром функции в C ++
То, что я пытаюсь сделать, это написать функцию с необязательным параметром, который передается по ссылке, чтобы я мог использовать его двумя способами (1) и (2), но на (2) я не очень все равно, что значение mFoobar
.
Я пробовал такой код:
void foo(double &bar, double &foobar = NULL)
{
bar = 100;
foobar = 150;
}
int main()
{
double mBar(0),mFoobar(0);
foo(mBar,mFoobar); // (1)
cout << mBar << mFoobar;
mBar = 0;
mFoobar = 0;
foo(mBar); // (2)
cout << mBar << mFoobar;
return 0;
}
но он падает на
void foo(double &bar, double &foobar = NULL)
с сообщением:
error: default argument for 'double& foobar' has type 'int'
Возможно ли это решить без перегрузки функции?