【问题标题】:What does " = 0" here mean?这里的“= 0”是什么意思?
【发布时间】:2011-03-14 04:47:08
【问题描述】:
int foo (int a , int b = 0)

我刚刚阅读了这段代码。我不明白“= 0”是什么意思?

我也想知道为什么int foo (int a = 0, int b) 无法编译。

【问题讨论】:

    标签: c++


    【解决方案1】:

    b是一个参数,默认值为0。所以可以调用函数(例如):

    foo(3, 4)
    

    a 和 b 等于 3 和 4

    或:

    foo(5)
    

    a 和 b 等于 5 和 0。

    int foo (int a=0, int b)
    

    是错误的,因为默认参数只能出现在末尾。想象一下你有:

    int foo (int a = 0, int b, int c = 1)
    

    并称它为:

    foo(3, 4)
    

    编译器不会知道您省略了哪个。为避免这种情况,您不能将默认参数放在非默认参数之前。

    【讨论】:

      【解决方案2】:

      【讨论】:

        【解决方案3】:

        它将参数“b”的默认值设置为函数foo,因此调用foo(345)等价于调用foo(345, 0)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-04-15
          • 2011-08-23
          • 2011-07-25
          • 2021-04-14
          • 2012-01-06
          • 1970-01-01
          • 1970-01-01
          • 2021-05-25
          相关资源
          最近更新 更多