c++ 函数声明

函数声明由返回类型、函数名和形参列表(这三个元素组成函数原型  function prototype)组成,形参列表可以只包含形参类型而不包含形参名。

函数通常在头文件中声明,在源文件中定义。

可以给函数添加默认实参,这样编译器会为省略的实参提供默认值。不过,如果有一个形参具有默认实参,那么它后面所有的形参都必须有默认实参。

string screenInit(string::size_type height = 24,
                  string::size_type width = 80,
                  char background = ‘ ‘);

调用screenInit时如果提供了实参,将覆盖默认的实参值。

string screen;
screen = screenInit();         // equivalent to screenInit(24, 80, ‘ ‘);
screen = screenInit(66);       // equivalent to screenInit(66, 80, ‘ ‘);
screen = screenInit(66, 256);  // equivalent to screenInit(66, 256, ‘ ‘);
screen = screenInit(66, 256, ‘#’);

需要注意的是,默认实参是用来替换函数调用缺少的尾部实参,并且是按位置解析(从所缺少的尾部实参的第一个位置开始匹配)。换句话说,如果要为screenInit()的background提供实参,就必须也为height、width提供实参。否则看如下示例:

screen = screenInit(‘?’); // calls screenInit(‘?’, 80, ‘ ‘);

本意是想将’?’传递给background,但实际却传递给了height(char类型实参隐式提升为string::size_type)。所以在设计带有默认实参的函数时,应该将最少使用默认实参的形参放在前面,最有可能使用默认实参的形参排在后面。

既可以在函数声明也可以在函数定义中指定默认实参,但在一个文件中,只能为一个形参指定默认实参一次。通常是在函数声明中指定默认实参,并将该声明放在合适的头文件中。如果在函数定义中指定默认实参,则只在包含该函数定义的源文件中调用该函数时,默认实参才有效。

【学习资料】 《c++ primer》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值