注:转载请标明原文出处链接: https://lvxiaowen.blog.csdn.net/article/details/107009393
1 函数参数默认值
(1) 有默认值参数值的参数必须在参数表的最右端
(2) 函数在声明时可以写参数默认值,但是在定义时最好不要写默认值
(3) 无实参则用默认值,有实参时实参覆盖默认值
2 函数重载
定义:在相同作用域内,用同一函数名定义的多个函数,参数个数或参数类型参数类型不同。
函数重载示例:
#include <iostream>
using namespace std;
void fun(int i = 30, int j = 20, int k = 10);
void fun(double i, double j);
int main(void)
{
fun(1, 2);
fun(1.1, 2.2);
system("pause");
return 0;
}
void fun(int i, int j, int k)
{
cout << i << ',' << j << ',' << k << endl;
}
void fun(double i, double j)
{
cout << i << ',' << j << endl;
}
执行结果:
思考:编译器如何识别重载的函数?
当调用一个重载函数时,编译器通过把所使用的参数类型与定义中的参数类型进行比较,决定选用最合适的定义。
重载的好处:比如求最大值(有时候要求两个数的最大值,有时候三个数),根据参数及返回值的不同,调用最合适的函数。
3 内联函数
内联函数关键字:inline
内联函数与普通函数定义上无太大差别,在调用上区别如下:
内联编译是建议性的,由编译器决定,内联函数效率高。
逻辑简单,调用频繁的函数建议使用内联。内联函数中不能使用循环语句和递归。
4 内容总结