跳到主要内容

11,函数提高

3.1函数默认参数

在C++中,函数的形参是可以有默认值的

int func(int a, int b = 20, int c = 30)
{
return a + b + c;
}

//注意事项
//如果某个位置已经有了默认参数,那么从这个位置往后,从左往右都必须有默认值,假如b有了,那么c必须要有
//如果函数声明已经有默认参数,那么函数实现就不能有默认参数,声明和实现只能有一个默认参数
int main()
{
cout<< func(10, 30) <<endl;

system("pause");
return 0;
}

3.2函数占位参数

C++中函数的形参 列表里可以有占位参数,用来做占位,调用函数时必须填补该位置

//占位参数可以有默认参数 int = 10
void func(int a,int )
{
cout << "this is func"<<endl;
}

int main()
{
func(10, 10);
system("pause");
return 0;
}

3.3函数重载

3.3.1函数重载概述

作用:函数名可以相同,提高复用性

函数重载满足条件:

  • 同一个作用域下
  • 函数名称相同
  • 函数参数类型不同,或者个数不同或者顺序不同

注意:函数返回值不可以作为函数重载的条件

void func()
{
cout << "func的调用"<<endl;
}

void func(int a)
{
cout << "func(int a)的调用"<<endl;
}

void func(double a)
{
cout << "func(double a)的调用"<<endl;
}

int main()
{
func();
func(10);
func(3.14);
system("pause");
return 0;
}

3.3.2函数重载的注意事项

  • 引用作为重载条件
  • 函数重载碰到函数默认参数
void func()
{
cout<<"func(int &a)调用"<<endl;
}

void func(const int &a)
{
cout<<"func(const int &a)调用"<<endl;
}

void func2(int a,int b = 10)
{
cout<<"func2(int a,int b)的调用"<<endl;
}

void func2(int a)
{
cout<<"func2(int a)的调用"<<endl;
}

int main()
{
int a = 10;
func(a);//调用上面的
func(10);//调用下面的
//func2(10);是错误的
system("pause");
return 0;
}

参考与致谢