第3引数のみを使用するにはどうすればよいですか?このよう関数のデフォルト引数を1つだけ使用するC++
:あなたが現在何をしたいのかをサポートしていません++
double func(const double c = 7, const double a = 5, const double b = 6);
第3引数のみを使用するにはどうすればよいですか?このよう関数のデフォルト引数を1つだけ使用するC++
:あなたが現在何をしたいのかをサポートしていません++
double func(const double c = 7, const double a = 5, const double b = 6);
これを行うための唯一の方法は、引数の順序を入れ替えることであろう。しかし、そこには方法があります。 Named Parameter IdiomまたはブーストのParemeter libraryを使用できます。
前者をお勧めします。それはあなたが(おそらく)いくつかのラッパー型を使用し、過負荷にでき...など、
C:
double func(const double a = 5, const double b = 6, const double c = 7);
int main()
{
cout << "A = " << func(10) << endl << endl; //if i do like this, i'm using first argument, but not 3rd.
}
、より明確なデバッグが簡単だし、呼び出すときに、パラメータに名前を付けるタイプを使用します。
struct A { double a; constexpr static double def = 5.0; };
struct B { double b; constexpr static double def = 6.0; };
struct C { double c; constexpr static double def = 7.0; };
double func(double a=A::def, double b=B::def, double c=C::def) { /* whatever */ }
double func(A a) { return func(a.a, B::def, C::def); }
double func(B b) { return func(A::def, b.b, C::def); }
double func(C c) { return func(A::def, B::def, c.c); }
int main()
{
func(A{3.0});
func(B{9.0});
func(C{12.0});
}
をあなたがすることはできません。 C++はこのように動作しません。 –
これを行うことができたとしても、3番目のパラメータだけを使用したい場合、 'a'と' b'はデフォルトになりますか? – PaulMcKenzie