1. 默认参数
C++中可以在函数声明时为参数提供一个默认值,当函数调用时没有指定这个参数的值,编译器会自动用默认值代替。
#include <iostream>
using namespace std;
void myPrint(int x = 3)
{
cout<<"x :"<<x<<endl;
}
//void myPrint2( int x = 3, int y = 4)
//void myPrint2( int x = 3, int y = 4,int m)会报错
void myPrint2( int m, int n, int x = 3, int y = 4)
{
cout<<"x :"<<x<<endl;
}
//void myPrint2( int m, int n, int x = 3, int y )
//2 在默认参数规则 ,如果默认参数出现,那么右边的都必须有默认参数
void main()
{
//1 若 你填写参数,使用你填写的,不填写默认
myPrint(4); //4
myPrint(); //3
//
cout<<"hello..."<<endl;
system("pause");
return ;
}
//函数占位参数 函数调用是,必须写够参数
void func1(int a, int b, int)
{
cout<<"a :"<<a<<", b: "<<b<<endl;
}
void main1502()//_占位参数
{
//func1(1, 2); //err调用不起来
func1(1, 2, 3);//1,2
cout<<"hello..."<<endl;
system("pause");
return ;
}
//默认参数和占位参数
void func2(int a, int b, int =0)
{
cout<<"a="<<a<<";b="<<b<<endl;
}
void main1503()
{
func2(1, 2); //0k 1,2
func2(1, 2, 3); //ok 1,2
cout<<"hello..."<<endl;
system("pause");
return ;
}
1. 函数默认参数的规则
1). 只有参数列表后面部分的参数才可以提供默认参数值
2). 一旦在一个函数调用中开始使用默认参数值,那么这个参数后的所有参数都必须使用默认参数值
2. 函数占位参数
占位参数只有参数类型声明,而没有参数名声明
一般情况下,在函数体内部无法使用占位参数