函数默认参数
int fun(int a, int b = 10, int c = 3) //正确
{
}
int fun(int a, int b = 10, int c) //错误
{
}
正确:
void fun(int a = 10, int b = 20);
void fun(int a, int b)
{
...
}
错误:
void fun(int a = 10, int b = 20); //声明已经有默认参数
void fun(int a = 10, int b = 20)
{
...
}
函数占位参数
函数参数列表可以有占位参数,用来占位,调用时必须填补该位。
语法:
<返回值类型> <函数名> ( <数据类型>)
{
...
}
void fun(int a, int) //int为占位参数
{
...
}
函数重载
定义:
**形参表不同(参数的类型、参数个数、参数的顺序)**的若干个函数使用相同的函数名
注意:
仅仅函数返回值类型不同不能重载。
int func(int x, int y)
{
...
}
float func(float x, float y) //形参类型不同
{
...
}
char func(char x, char y) //形参类型不同
{
...
}
int func(int x) //形参个数不同
{
...
}
int func(int x, double x) //参数顺序不同
{
...
}
int func(double y, int x) //参数顺序不同
{
...
}
-
函数重载的注意事项
-
引用作为重载条件
void fun(int &a) //形参为引用 { ... } void fun(const int &a) //形参为常引用 { ... } //两个函数属于类型不同,可以重载
-
函数有默认参数
void fun(int a, int b = 10) { ... } void fun(int a) { ... } int main(void) { fun(a); //两个fun都可以被调用,出现二义性,错误用法 }
注意:
扫描二维码关注公众号,回复: 11363359 查看本文章函数重载避免带默认参数
-
重载体现了C++作为OOP编程语言多态的特性。