函数的默认参数

默认参数是指调用函数的时候,如果不书写实参,那么将使用的一个缺省值。

语法:返回值 函数名(数据类型 参数=值, 数据类型 参数=值,……);

注意:

  • 如果函数的声明和定义是分开书写的,在函数声明中书写默认参数,函数的定义中不能书写默认参数。
  • 函数必须从右到左设置默认参数。也就是说,如果要为某个参数设置默认值,则必须为它后面所有的参数设置默认值。(即以左边标定排队,有默认值意味可以空着,一列队伍不能前面或者中间空着)
  • 调用函数的时候,如果指定了某个参数的值,那么该参数前面所有的参数都必须指定。

函数重载

函数重载(函数多态)是指设计一系列同名函数,让它们完成相同(似)的工作。

C++允许定义名称相同的函数,条件是它们的特征(形参的个数、数据类型和排列顺序)不同。

在实际开发中,视需求重载各种数据类型,不要重载功能不同的函数。
注意:

  • 使用重载函数时,如果数据类型不匹配,C++尝试使用类型转换与形参进行匹配,如果转换后有多个函数能匹配上,编译将报错。
  • 引用可以作为函数重载的条件,但是,调用重载函数的时候,如果实参是变量,编译器将形参类型和形参类型引用视为同一特征。
  • 如果重载函数有默认参数,调用函数时,可能导致匹配失败。
  • const不能作为函数重载的特征。
  • 返回值的数据类型不同不能作为函数重载的特征。
  • C++的名称修饰:编译时,对每个函数名进行加密,替换成不同名的函数。

内联函数

C++将内联函数的代码组合到程序中,可以提高程序运行的速度。

普通的函数重复调用将产生多次重复的调用开销,将函数声明为内联函数则可能会将函数嵌入调用程序中,增大内存但减少调用开销。

语法:在函数声明和定义前加上关键字inline。
通常的做法是将函数声明和定义写在一起

注意:

  • 内联函数节省时间,但消耗内存。
  • 如果函数过大,编译器可能不将其作为内联函数。
  • 内联函数不能递归。
最后修改日期: 2023年7月27日

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。

13 + 17 =