我在 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'
是否可以在没有函数重载的情况下解决它?