高质量程序设计指南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

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/86690

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月9日 下午10:43
下一篇 2023年2月9日 下午10:44

相关推荐