C语言函数的默认形参和函数的重载

北京有专治白癜风的吗 http://pf.39.net/bdfyy/bdfyc/160315/4789106.html

什么叫函数的默认形参?就是说函数的形式参数可以给它默认值。比如:

voidprint(charch,intn=1);

这个print函数的第二个形参n,我们给了它一个默认值,这里是1。当我们调用这个函数的时候,对于有默认值的形参n,可以给它提供值,也可以不给它提供值。

关于默认形参,有这样的规定:默认形参必须在非默认形参的右边,即一律靠右。比如

add(x=1,y,z=2);//错误

add(y,x=1,z=2);//正确

那什么叫函数重载呢?C++允许同一个作用域里面有多个同名的函数,只要它们的形参列表不同(形参类型或者形参个数不同)就行了。比如:

intadd(intx,inty);

doubleadd(doublex,doubley);

虽然这两个函数的函数名都叫add,但他们的形式参数类型不一样。所以,以上两个函数在同一个作用域,是完全可以同时存在的。将来我们调用add函数的时候,就根据实际参数的类型来决定。

函数名和形参列表整个构成了函数的签名这个概念。也就是说函数重载是根据函数签名来区分不同的函数的。函数重载不能根据返回类型区分函数。比如

intadd(intx,inty);

doubleadd(intx,inty);

这两是完全同样的函数,虽然函数的返回值类型不一样,但函数签名相同。




转载请注明:http://www.aierlanlan.com/cyrz/2644.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了