0

すべてにデフォルト値があり、それらの一部のみが使用されている場合、関数の引数を解析する方法は? 例: デフォルト値を持ついくつかの引数を持つ関数があります

void fun(string a="", int b=0, string c="", int d=0)
{
 //parse used arguments somehow
}

たとえば、次のように、さまざまな値の引数で使用したいと思います。

fun("foo", 10);
fun(10, 10);

どの引数が使用されたかを確認するにはどうすればよいですか? 引数の最大値は既知であり、順序は常に同じです。次のような関数を実行したくありません。

fun("", 3, "", 10);

また、可変引数関数は使用できません。

何か案は?

4

1 に答える 1

3

関数をオーバーロードします。

void fun(int b, int d) { fun("", b, "", d); }

fun(3, 10)と同等になりfun("", 3, "", 10)ます。

于 2014-11-20T14:49:41.310 に答える