zoukankan      html  css  js  c++  java
  • 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;
    }

    结论:

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

  • 相关阅读:
    tkinter 对键盘和鼠标事件的处理
    python基础知识字符串与元祖
    python中的raw string的使用
    python使用tkinter做界面之颜色
    windows强制删除文件和文件夹
    Python 类的继承__init__() takes exactly 3 arguments (1 given)
    python tkinter txt窗口,开线程两个卡死
    python Tkinter的Text组件中创建x轴和y轴滚动条,并且text文本框自动更新(三)
    tkinter界面卡死的解决办法
    python Tkinter的Text组件中创建x轴和y轴滚动条,并且text文本框自动更新(二)
  • 原文地址:https://www.cnblogs.com/yuehouse/p/9786555.html
Copyright © 2011-2022 走看看