• C++对C语言的拓展(3)—— 默认参数和占位参数


      通常情况下,函数在调用时,形参从实参那里取得值。对于多次调用同一函数同一 实参时,C++给出了更简单的处理办法。给形参以默认值,这样就不用从实参那里取值了。

    1、单个默认参数

    若填写参数,使用你填写的,不填写,使用默认的。

    #include <iostream>
    using namespace std;
    
    void printA(int a=3)
    {
        cout << a << endl;
    }
    int main(void)
    {
        printA();//3
        printA(10);//10
        return 0;
    }

    2、多个默认参数

    在默认参数规则中,如果默认参数出现,那么右边的都必须有默认参数。

    #include <iostream>
    using namespace std;
    
    float volume(float l,float w=4,float h=5)
    {
        return l*w*h;
    }
    int main(void)
    {
        float v1 = volume(10);
        float v2 = volume(10,20);
        float v3 = volume(10,20,30);
    
        cout << v1 << endl;//200
        cout << v2 << endl;//1000
        cout << v3 << endl;//6000
    
        return 0;
    }

    3、默认参数规则

    • 只有参数列表后面部分的参数才可以提供默认参数值;
    • 一旦在一个函数调用中开始使用默认参数值,那么这个参数后的所有参数都必须使用默认参数值

    4、占位参数

    (1)函数占位参数:占位参数只有参数类型声明,而没有参数名声明,一般情况下,在函数体内部无法使用占位参数。

    #include <iostream>
    using namespace std;
    
    int func(int a,int b,int)
    {
        return a+b;
    }
    int main(void)
    {
        //func(1, 2);//error,必须把最后一个占位参数补上
    
        cout << "func(1,2,3)=" << func(1, 2, 3) << endl;//func(1, 2, 3)=3
    
        return 0;
    }

    (2)可以将占位参数与默认参数结合起来使用

    意义:为以后程序的扩展留下线索,兼容C语言程序中可能出现的不规范写法。

    C++可以声明占位符参数,占位符参数一般用于程序扩展和对C代码的兼容。

    #include <iostream>
    using namespace std;
    
    int func(int a,int b,int=0)
    {
        return a+b;
    }
    int main(void)
    {
        //如果默认参数和占位参数在一起,都能调用起来
        func(1, 2);//3
        func(1, 2, 3);//3
    
        return 0;
    }

    结论:

      如果默认参数和占位参数在一起,都能调用起来

  • 相关阅读:
    居中方法
    12个css实用技巧
    display元素来布局
    伪元素::before与:after
    弹性布局
    输入框下拉菜单
    HTMLinput日期输入类型
    模块XXXX可能与您正在运行的Windows版本不兼容。检查该模块是否与regsvr32.exe的x86(32位)x64(64位)版本兼容。
    Epoll为我们带来了什么
    C内存管理相关内容--取自高质量C++&C编程指南
  • 原文地址:https://www.cnblogs.com/yuehouse/p/9786555.html
走看看 - 开发者的网上家园