1.函数默认参数
函数的形参列表中的形参是可以有默认值的。
语法:
返回值类型 函数名 (参数= 默认值){}
#include<iostream>
using namespace std;
//定义默认3个参数函数
int func1(int a=10, int b = 10, int c = 10)
{
return a + b + c;
}
//定义默认2个参数函数
int func2(int a, int b = 10, int c = 10)
{
return a + b + c;
}
//定义默认1个参数函数
int func3(int a, int b, int c = 10)
{
return a + b + c;
}
int main()
{
cout << "ret = " << func1() << endl;
cout << "ret = " << func2(5) << endl;
cout << "ret = " << func3(5,6) << endl;
system("pause");
return 0;
}
总之:如果没有传入实参,就采用默认的形参,如果我们传入实参,就采用我们传入的实参。
2.函数中的占位参数
语法: 返回值类型 函数名 (数据类型){}
#include<iostream>
using namespace std;
//定义默认3个参数函数
void func(int)
{
cout << "函数占位符" << endl;
}
void func1(int, int)
{
cout << "函数占位符" << endl;
}
int main()
{
func(10);
func(10,10);
system("pause");
return 0;
}
3.函数重载
作用:函数名可以相同
函数重载满足条件:
同一个作用域下
函数名称相同
函数参数类型不同 或者 个数不同 或者 顺序不同
#include<iostream>
using namespace std;
//函数重载需要函数都在同一个作用域下
void func()
{
cout << "func 的调用!" << endl;
}
void func(int a)
{
cout << "func (int a) 的调用!" << endl;
}
void func(double a)
{
cout << "func (double a)的调用!" << endl;
}
void func(int a, double b)
{
cout << "func (int a ,double b) 的调用!" << endl;
}
void func(double a, int b)
{
cout << "func (double a ,int b)的调用!" << endl;
}
int main() {
func();
func(10);
func(3.14);
func(10, 3.14);
func(3.14, 10);
system("pause");
return 0;
}