【C++】函数进阶用法

一、函数默认参数

语法: 返回值类型 函数名 (形参 = 默认值){}

int func(int a,int b = 20)
{
    return a + b;
}

int main()
{
    cout << "a+b=" << func(10) << endl;
    
    system("pause");
    return 0;
}

** 如果在调用函数时,我们自己填入参数,函数则会使用传入的参数,而不会使用默认值 **

int func(int a,int b = 20)
{
    return a + b;
}

int main()
{
    cout << "a+b=" << func(10,30) << endl;
    
    system("pause");
    return 0;
}

** 如果某个位置使用了默认参数,那么从这个位置往后,参数必须有默认值 **

** 如果函数声明有默认参数,函数实现就不能有默认参数 **

** 声明和实现只能有一个有默认参数 **

二、函数占位参数

语法:返回值类型 函数名 (数据类型){ }

void func(int a, int)
{
    cout << "this right" << endl;
}

int main (){
    
    func(10,10); //占位参数必须填补

    system("pause");
    return 0;
}

三、函数重载

作用:提高复用性

函数重载满足条件:①同一作用域 ②函数名称相同 ③函数参数类型 / 个数 / 顺序不同

** 函数返回值不可以作为函数重载条件 **

void func()
{
    cout << "调用1" << endl;
}

void func(int a)
{
    cout << "调用2" << endl;
}

四、函数重载注意事项

** 引用做函数参数 **

void fun(int &a)
{
    cout << "调用1" << endl;
}

void fun(const int &a)
{
    cout << "调用2" << endl;
}

int main(){

    //调用1
    int a = 10;
    fun(a);    

    //调用2    
    fun(10);
}

** 默认参数做函数参数 **

void fun (int a, int b = 10)
{
    cout << "调用成功1" << endl;
}

void fun (int a)
{
    cout << "调用成功2" << endl;
}

此时两个函数为同一个函数,编译器无法区分两个函数的区别,出现二义性报错,导致调用报错

相关推荐

  1. c++ 函数

    2024-07-18 01:38:01       28 阅读
  2. 七种SQL

    2024-07-18 01:38:01       43 阅读
  3. Linux基础和

    2024-07-18 01:38:01       37 阅读
  4. 03---webpack

    2024-07-18 01:38:01       29 阅读
  5. 【Go高】细说 Channel 的

    2024-07-18 01:38:01       32 阅读
  6. C++--3.函数提高》

    2024-07-18 01:38:01       44 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-18 01:38:01       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-18 01:38:01       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-18 01:38:01       58 阅读
  4. Python语言-面向对象

    2024-07-18 01:38:01       69 阅读

热门阅读

  1. C语言经典例题-19

    2024-07-18 01:38:01       19 阅读
  2. nvm的安装教程

    2024-07-18 01:38:01       20 阅读
  3. 人工智能前沿讲座——融合知识的自然语言处理

    2024-07-18 01:38:01       20 阅读
  4. centos7单机安装docker和k8s

    2024-07-18 01:38:01       22 阅读
  5. 浔川AI五子棋v5.0预告——浔川总社部

    2024-07-18 01:38:01       20 阅读
  6. 441. 排列硬币

    2024-07-18 01:38:01       23 阅读
  7. 1.时间复杂度/空间复杂度

    2024-07-18 01:38:01       21 阅读