C++之函数

  • 函数的默认参数

    //如果我们自己传入数据,就用自己的数据,没有就用默认值
    int func(int a,int b = 20, int c = 30)
    {
        return a+b+c;
    }
    
    //1.如果某个位置参数有默认值,则这个位置往后(从左向右)都必须有默认值
    void fun1(int a ,int b = 10,int c = 10)
    //2.函数声明和函数定义只能有一个有默认参数
    int fun2(int a,int b);
    int fun2(int a = 10,int b = 10)
    {
        return a+b;
    }
    
    int main()
    {
        cout << func(10,40) << endl;//b输出为40,其他按规则
    	
    }
    
  • 占位参数

    //调用参数必须填补,且调用参数也可以有默认参数
    //fun(数据类型)
    void func(int a,int,int = 10);
    int main()
    {
    	func(10,10);
    }
    
  • 函数重载

    条件:

    1. 在同一个作用域下,比如全局域
    2. 函数参数类型要不同,参数个数要不同,或者参数顺序不同
    3. 函数名称相同
    4. 函数的返回值不能作为函数重载的条件
    void func();
    void func(int a);
    void func(int a,double b);
    void func(double b,int a);
    
  • 函数重载的注意事项

  1. 引用作为重载条件

    void func(int &a);
    void func(const int &a);
    
    func(10);//调用第二个
    int a = 10;
    func(a);//调用第一个,因为非const类型
    
    
  2. 函数重载遇到默认参数

    //会有二义性
    void fun2(int a,int b = 20)
    void fun2(int a);
    
    //调用
    fun2(10);//将会两个都可以,有歧义
    
posted on 2020-10-22 13:01  海鱼啊  阅读(71)  评论(0)    收藏  举报