014_默认参数和占位参数

//默认参数
#if 0
void myprint(int x = 3)
{
    cout << "x = " << x << endl;
}

//2 在默认参数规则,如果默认参数出现,那么右边的都必须有默认参数
//void myprint2(int m, int n, int x = 3, int y ) //编译器编译错误
void myprint2(int m, int n, int x = 1111, int y = 4)
{
    cout << "x = " << x << endl;
}

void test()
{
    //1 若 你填写参数,使用你填写的,不填写使用默认的
    myprint(5);
    myprint();

    myprint2(11, 22);//没有默认参数的必须赋值
    myprint2(11, 22, 33, 44);
}
#endif
//占位参数必须写够参数
#if 0
/*
    函数占位参数
    占位参数 只有 参数类型 声明,而 没有参数名 声明
    一般情况下,在函数体内部无法使用占位参数
*/

void func1(int a, int b, int)
{
    cout << "a = " << a << " b = " << b << endl;
}

void test()
{
    //func1(1, 2);//err 调用不起来
    //函数占位参数 函数调用时, 必须写够参数
    func1(1, 2, 3);
}
#endif
//默认参数和占位参数
#if 1
//c++编译器支持占位参数,有默认值的
void func2(int a, int b, int = 0)
{
    cout << "a = " << a << " b = " << b << endl;
}

void test()
{
    func2(1, 2);// 如果默认参数和占位参数在一起,都能调用起来
    func2(1, 2, 3);
}
#endif

猜你喜欢

转载自blog.csdn.net/WUZHU2017/article/details/81302740