为什么具有单个参数值的函数之后必须为每个参数指定默认值?

火星加号

例如:

void DoSome(int a = 10, int b = 10 ) {
    std::cout << a + b << std::endl;
}

作品。

void DoSome(int a = 10, int b ) {
  std::cout << a + b << std::endl;
}

将不会。

克瑞克(Kerrek SB)

您的特定示例可能会起作用,但请考虑更一般的情况:

void foo(int = 10, int, int = 20);

现在是什么foo(1, 2)意思?可以是foo(10, 1, 2)foo(1, 2, 20)这令人困惑,并且与弄清楚实际争论是什么的沉重精神负担相比,允许这样做几乎不会增加便利。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么可选参数的默认值必须为常数?

为什么必须由常量表达式或值类型的无参数构造函数指定可选参数的默认值?

为什么在指定所有模板参数都具有默认值的模板类时需要<>?

为什么重新分配参数不适用于具有默认值的参数?

为具有默认值的参数键入注释

获取具有默认值的函数参数

如何使某些函数参数为无默认值的可选参数,而另一些具有默认值的可选参数?

在python中为函数中的参数分配默认值有什么好处

用作具有默认值的参数

为什么选择重载基类值的默认参数值,而不是在执行的派生方法中指定的默认参数值

为什么即使指定了参数,argparse仍包含可选参数的默认值?

有什么办法可以区分Oracle中的“参数没有默认值”和“参数的默认值为null”

可选参数的默认值必须为恒定颤动/飞镖

可选参数的默认值必须为常数

错误:可选参数的默认值必须为常数

具有默认值的单参数构造函数与默认构造函数相同吗?

从修改默认值的函数调用具有不同默认参数的多个函数

如何在R函数中具有不同数量的具有默认值的参数?

具有默认值的默认模板参数?

为什么不可能指定Scala varargs参数的默认值?

为什么即使在参数设置为默认值的情况下,也不能使用let声明与一个函数参数同名的变量?

为什么在switch语句中有每个枚举常量的用例时,为什么仍必须提供默认值?

函数参数的默认值为“ passing_parametr” * 2

Azure 函数为请求体参数提供默认值

为什么C ++不允许将函数参数用作默认值?

为什么 Typescript 类中的箭头类成员函数无法识别参数属性的默认值?

具有默认参数值的方解石函数

C ++继承具有不同默认参数值的函数

使用反射调用具有默认参数值的函数