Bootstrap

C++默认参数与占位参数的使用

#include<iostream>
using namespace std;

//默认参数
void fun(int x=1)
{
    cout<<"x="<<x<<endl;
}
void fun1(int x,int y=1,int z=2)
{
    cout<<"x="<<x<<endl;
    cout<<"y="<<y<<endl;
    cout<<"z="<<z<<endl;
}

//占位参数
int fun2(int a, int b,int)
{
    return a+b;
}

//默认参数与占位参数结合使用
int fun3(int a, int b,int =0)
{
    return a+b;
}

int main()
{
    /*
    默认参数:
    在函数定义时形参直接给定初始值,这样在函数调用时若无实参则用默认值
    当用多个默认参数时,默认参数全都放在最右边
    占位参数:
    只有类型声明而没有参数名
    一般情况下,在函数体内无法使用占位参数(没有参数名)
    */
    fun(3);//默认参数
    fun();

    fun1(10);
    fun1(10,20);
    fun1(10,20,30);

    cout<<"fun2(1,2,3)="<<fun2(1,2,3)<<endl;//尽管第三个参数为占位参数,但调用时实参还是不能少

    cout<<"fun3(1,2,3)="<<fun3(1,2,3)<<endl;//当占位参数为默认参数时,调用时可以不写

    cout<<"fun3(1,2)="<<fun3(1,2)<<endl;//当占位参数为默认参数时,调用时可以不写
    system("pause");
    return 0;
}

;