如果我有这个功能,有趣(t1,t2,t3),并且我通过有趣的方式调用它(v1,v2),是否可以获得v3的默认值,尽管它没有被指定为什么是?例如bool为false,指针为null,int为0等。或者是否应该引发编译错误?
答案 0 :(得分:1)
声明如下:
void fun (Foo t1, Bar t2, bool t3 = false)
{...}
当您输入=和值时,如果未提供任何值,则该参数将获得默认值。但是,您必须从参数列表的右侧开始使用它们。
答案 1 :(得分:1)
如果函数没有过载,它将引发编译器错误。
如果您无法更改原型,可以自行重载:
void fun (bool t1, bool t2)
{
fun (t1,t2, true); //or whatever
}
或者如果您可以更改它,您可以声明参数的默认值,如下所示:
void fun (bool t1, bool t2, bool t3 = true)
{
}