一.带默认参数的函数
如果在函数说明或函数定义中为形参指定一个默认值,则称此函数为带默认参数的函数。
指定了初始值的参数称为默认参数。如果函数有多个默认参数,则默认参数必须是从右向左定义,并且在一个默认参数的右边不能有未指定默认值的参数。
例如:
void fun(int a,int b=1,int c=4,int d=5);
此函数声明是正确的,但下面这个则是错误的:
void fun(int a=3,int b=1,int c,int d);
注意:默认参数值的说明必须出现在函数调用之前,如果存在函数原型,则形参的默认值应在函数原型中指定。若函数原型中已给出了形参的默认值,则在函数定义中不得重复指定。
二.函数重载
c++语言编译系统允许为两个或两个以上的函数取相同的函数名,但形参的个数或者形参的类型不应相同。编译系统会根据实参和形参的类型及个数的最佳匹配,自动确定调用哪一个函数,这就是所谓的函数重载。
c++语言允许重载函数有数量不同的参数个数。当函数名相同而参数个数不同时,c++语言会自动按参数个数定向到正确的要调用的函数。
重载函数应用实例:
#include<iostream>
using namespace std;
int add(int x,int y)
{
int sum;
sum=x+y;
return sum;
}
int add(int x,int y,int z)
{
int sum;
sum=x+y+z;
return sum;
}
int main()
{
int a,b;
a=add(5,100);
b=add(5,10,20);
cout<<"a="<<a<<endl;
cout<<"b="<<b<<endl;
return 0;
}
使用函数重载时要注意以下两点:
- 不可以定义两个具有相同名称、相同参数和相同参数个数,只是函数返回值不同的函数。
- 如果某个函数参数有默认值,必须保证其参数默认后调用形式不与其它函数混淆。
类的成员函数同样也可以重载,类成员函数的重载与全局函数的重载方法相同。