• C++默认参数函数及函数重载


    有默认参数函数

    1.什么是有默认参数函数
    一般情况下,C语言中在函数调用时形参从实参取得,但是在C++中提供一种简单处理方法给形参一个默认值,当调用函数时,若该形参未传入参数,则形参使用定义时的默认值。

    2.代码实现:

    #include<iostream>
    using namespace std;
    
    void fun(int a = 1,int b = 2)
    {
        cout << a <<endl;
        cout << b <<endl;
        return;
    }
    
    int main()
    {
        fun();       //未传入参数,使用默认值
        fun(3,4);    //传入参数时,使用传入的参数
    }

    运行结果:
    这里写图片描述

    3.由于实参与形参的结合是从左到右顺序进行,所以有默认值的形参必须放在最右侧。

    例:

    void fun(int a = 1,int b)   //错误
    void fun(int b,int a = 1)   //正确

    同样的,当调用函数时,若该形参未传入参数,则形参使用定义时的默认值。

    4.当函数调用在函数定义前时,需要在函数声明时给出默认值,此时,在函数定义时就不需要给出默认值。
    如果在声明函数时给出了默认值,在定义函数时也给出了默认值不同编译器可能给出报错信息,所以建议只在函数声明时给出默认值以避免混淆。

    函数重载

    1.什么是函数重载?

    在C++中一个函数名可以定义多个函数,这些函数根据传入参数个数及类型进行调用,这就是函数的重载。即对一个函数名增加定义,使一个函数名可以有多种用途。

    2.代码实现:

    int add(int a,int b)         //int类型变量加法
    {
        return a+b;
    }
    
    double(double a, doublr b)   //重载后增加double类型加法
    {
        return a+b;
    }
    • 注:

      • 当函数重载时不能只有函数类型相同,而参数个数,类型,顺序全相同;

        • 因为当这样定义函数后,编译系统无法判断到底使用哪一个函数。
      • 当函数重载时传参个数,参数类型,参数顺序不允许全部相同;

        • 同样的定义参数全相同的重载函数后,编译系统无法判断到底使用哪一个函数。
      • 当函数重载时,尽量使函数作用相近或同;

        • 提高程序可读性,便于理解、阅读。
      • 函数不能既为重载函数,又为有默认参数函数。

        • 当未传入参数时,系统无法判定调用哪一个参数。
    错误示范1:
    int fun(int a)
    
    void fun(int a)//不允许只有函数类型相同,错误
    错误示范2:
    int fun(int a = 1int fun(int a = 1,int b = 2)//函数不能既为重载函数,又为有默认参数函数。错误
  • 相关阅读:
    linux学习之高并发服务器篇(二)
    linux学习之多高并发服务器篇(一)
    Linux学习之socket编程(二)
    Linux学习之socket编程(一)
    CMSIS-RTOS功能概述
    CMSIS-RTOS的使用
    CMSIS-RTOS 简介
    深入理解void以及void指针的含义
    C语言操作数截断
    惊人发现:火星上有水!会有生命吗? 未完
  • 原文地址:https://www.cnblogs.com/D-Rui/p/9769183.html
Copyright © 2020-2023  润新知