C++语言笔记系列之六——函数的重载、函数缺省参数

1.函数的重载
(1)在同一个C++程序中出现多个同名函数。
(2)函数重载的条件:重载函数有不同的形参类型表;重载函数有不同的参数个数。
这两个条件满足一个即可:但是在函数的调用的时候会存在隐形的变量类型的提升:
字符型->整型、float型->double型
在判定是否满足重载的时候一定要先将类型提升考虑到,例如:
int abs(int);
int abs(char);
这两个函数即无法重载,而
int abs(int);
long abs(long);
flaot abs(float);
这三个函数可以完成重载。需要特别说明的一点是能否重载完全只看参数列表,不看返回值的,所以仅仅返回值类型不同的话不能够重载,这三个函数的返回值如果改成一样的话,也是可以完成重载的。
2.函数的声明
(1)函数都必须先定义,后使用。
函数的声明:如果在程序中先出现函数的调用,后出现函数的定义,那么需要对被调函数进行声明,毕竟需要让编译器知道这个函数是在后面有定义的嘛。
函数声明示例:
返回值类型 函数名(形参类型);
(2)关于函数声明的几点说明
在声明时,函数的形参只声明类型和个数;每个形参必须逐个按顺序声明;也可以带形参名。
注意:类的成员函数若在类外实现,在类内必须对其进行声明。
3.缺省参数
(1)给函数的形参去设置默认值——缺省参数。这个实现的功能是当用户调用函数的时候,没有给出相应的实参(或者没有给够相应的实参),那么就用默认的参数来处理。
(2)在函数调用时,每个实参按顺序将值传递给对应的形参,若实参的个数少于形参个数,必然会存在某些形参无法接收到实参值。
缺省参数的示例:
数据类型 函数名(可获得实参的形参列表,有默认值的形参列表)
{
  函数体
}
按照第(2)点的说明,很容易理解为什么含有默认值的形参列表放在后面,而可获得实参的形参放在前面,因为是逐个按顺序传递。
(3)带默认形参的函数的调用
#include <iostream.h>
void print(int x = 3, int y = 4)
{
  cout<<x<<endl;
  cout<<y<<enld;
}
int main()
{
  print(5, 6);5,6
  print(5);//5,4
  print();//3,4
}
4.关于缺省参数的特别说明
(1)缺省参数的设定必须从最后一个开始逐次往前设置。
(2)若程序中出现了先调用后定义该函数时,形参的默认值续放在声明中,在函数定义时不再设置默认值。
原因如下:
一是函数的实现(定义)本来就与参数是否有缺省值无关,所以没有必要让缺省值出现在函数的定义体中。
二是参数的缺省值可能会改动,显然修改函数的声明比修改函数的定义要方便。
这么做的好处:
函数定义可以定义为最标准的形式,在函数声明时,可以声明为有不同个数的默认值的类型,虽然它们都最后指向同一个函数,但是使用起来却方便了许多。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值