C++ のオプションの関数パラメーターに問題があります
私がやろうとしているのは、参照によって渡されるオプションのパラメーターを使用して関数を記述して、(1) と (2) の 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'
関数のオーバーロードなしで解決できますか?