具有不同默认参数值的函数

时间:2014-11-20 14:45:32

标签: c++ default-arguments

当所有函数参数都有默认值并且只使用其中一些参数时,如何解析函数参数? 例: 我有一个带有几个参数的函数,默认值为

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);

我不能使用可变函数。

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

重载该功能。

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

然后fun(3, 10)等同于fun("", 3, "", 10)