全缺省参数
- 在C++中规定在定义函数的时候可以给定函数默认参数。举例void TestFunc (int a=10,int b=20,int c=30)。
- 在主函数中这样(void TestFunc ( ))调用给定默认参数的函数的时候,运行也不会报错,那么在运行的时候,在Test内部就是采用默认参数。
- 倘若在定义的函数是void TestFunc (int a=10,int b=20,int c=30),那么在进行函数调用传参的时候是这样TestFunc(1,2),那么在运行函数的时候,在函数体内部就是1,2,30,因为没有给出第三个参数,所以第三个参数采用默认值。
半缺省参数
- 半缺省参数规则:如果提供半缺省参数值,那么只能有右向左给出。
- 半缺省参数指的是,在定义函数的时候void TestFunc (int a,int b, int c=30),缺省参数只能由左边开始缺省,也就是说默认参数只能由右边开始给出,要是在主函数内部进行调用的时候是这样void TestFunc(10,20,50),函数内部跑的数据其实就是10,20,50.
- 还有一点就是关于给出函数默认值的位置:在函数声明和定义的时候都可以给出函数的默认参数,但是不能重复给出,那么一般我们在声明的时候给出比较好一点。
- 缺省参数的值必须是常量或者全局变量。
- c语言不支持半缺省参数函数。
关于函数重载
int Add(int a,int b)
double Add(double a,double b)
- 两个同名函数在编译期间,编译器会进行实参类型推演,拿出参数的类型,到时候需要调用的时候编译器就会分辨,此时要是想调用Add(1,1.2),编译器就会报错。也就是同名函数要想重载,参数列表必须不同(构成重载的函数参数列表必须不同)。
int Add (int a,int b)
double Add(int a,int b)
这两个函数要进行函数重载,编译的时候就会报错。
函数重载:首先必须在同一个作用域,函数名字必须相同,参数列表必须不同(个数,类型,类型次序)。