如果我得到了这个函数 fun(t1, t2, t3),并且我用 fun(v1, v2) 调用它,是否可以获得 v3 的默认值,尽管尚未指定它是什么?例如 bool 为 false,指针为 null,int 为 0 等。还是应该引发编译器错误?
问问题
1466 次
2 回答
1
像这样声明它:
void fun (Foo t1, Bar t2, bool t3 = false)
{...}
当您放置一个 = 和一个值时,如果没有提供该参数,则该参数将获得一个默认值。但是,您必须从参数列表的右侧开始使用它们。
于 2012-04-19T11:14:33.640 回答
1
如果函数没有重载,它将引发编译器错误。
如果你不能改变原型,你可以自己重载它:
void fun (bool t1, bool t2)
{
fun (t1,t2, true); //or whatever
}
或者如果您可以更改它,您可以为参数声明一个默认值,如下所示:
void fun (bool t1, bool t2, bool t3 = true)
{
}
于 2012-04-19T11:14:36.687 回答