一、函数声明
1、函数返回值
在C中,函数没有返回值,可不指定,C编译器会自动指定为int类型。C++中必须明确指定返回值类型,没有返回值用void表示,同时声明函数时可以省略参数名。如:void fun(int,float);
2、函数参数
C++中,函数没有参数可以不写,但建议把参数写为void。如:void fun(void);
3、函数的定义
C++中,任何一个函数的定义不能出现在另一个函数体内,但函数体内可以调用任何一个函数,包括自身(所谓的递归调用)。
二、函数的重载
C语言中不能出现同名的函数,但在C++中,同一文件的作用域里允许有重名的函数。
1、构成重载的条件
函数的形参(形参个数或形参的数据类型)不同。需要注意的是函数返回值不相同,函数名相同的函数不构成重载的。
例:
a、int fun(void);
b、int fun(int);
c、void fun(int);
d、void fun(float);
e、void fun(int,float);
上面的5个函数中,b和c只是在返回值上不同,不是合法的重载函数。
三、函数默认形参
1、默认值在函数声明中提供,但当有声明又有定义时,定义中不允许有默认值。如果函数只有定义,则默认值可以出现在函数定义中。
2、带默认值的形参顺序规定
在函数中有多个默认参数,则形参从最右边依次向左设定。当调用函数时,只能向左匹配参数。
错误的表示:
void point(int=0,int, int=0);
void point(int=0,int=0,int);
调用时:
point(x): ok
point(x,y);ok
point(x,y,z);ok
point(); error
point(x, , z); error
3、默认参数与函数重载
使用带默认值的函数可以将一些简单的函数合并为一个函数。但是一个函数不能既作为重载函数,又作为带默认值的函数。会出现二义性,系统无法执行。
例:point(int x,int y);
point(int x,int y=0, int z=0);
point(x,y);
4、默认值的限定
默认值:可以是全局变量,全局常量,也可以作为一个函数表达式。默认值不能是局部变量。
C++中的函数
最新推荐文章于 2024-06-22 03:38:57 发布