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 回答