高质量程序设计指南c++/c语言(26)--默认参数

1、 既可以在函数声明也可以在函数定义中指定默认实参,但是,在一个文件中,只能为一个形参指定默认实参一次。例如下面的程序会出现重复定义错误。

int fun(int a=3,int b=5);

int fun(int a=9,int b)
{
   return a*b;
}

2、函数最终的默认参数是声明和定义的合集。下面这样也是可以的,只是不推荐。

#include<iostream>
using namespace std;

int fun(int a,int b=5);

int fun(int a=9,int b)
{
   return a*b;
}

int main(void)
{
    cout << fun() << endl;
    return 0;
}

3、当函数定义和调用在同一个文件时,如果函数的定义在函数调用之前,则应在函数定义中给出默认值,实际上此时的定义也是声明。如果函数的定义在函数调用之后,则在函数调用之前需要有函数声明,此时必须在函数声明中给出默认值,在函数定义时可以不给出默认值。

4、对于类中的函数,一般在声明的时候给出默认值,否则的话只有在包含定义的文件里这个默认实参才会起作用。

5、对于非类中的函数,在函数声明中定义默认参数的另外一个好处时,可以利用局部声明来随意更改默认参数的值。

#include<iostream>
using namespace std;

int fglobal(int a,int b,int c)
{
     cout<<a<< b <<c<<endl;
     return a;
}


int fglobal(int a,int b=2,int c=5); // 全局的声明

int main(int argc, char* argv[])
{

     //fglobal(); //此时用的全局申明,无第一个参数不行

     fglobal(1);

     int fglobal(int a=2,int b=3,int c=5); // 局部的申明,不管上述默认参数是在定义还是申明中

     fglobal();

     ::fglobal(3); // 此时将采用全局申明

     return 0;
}

 

转载于:https://www.cnblogs.com/zzj3/archive/2013/05/01/3053668.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值