C++之函数特性

一、函数参数默认值
1.有默认值参数值的参数必须在参数表的最右端 
2.函数定义不写默认值,声明可写默认值
3.无实参则用默认值,否则实参覆盖默认值
二、函数重载
1.定义:在相同作用域内 用同一函数名定义的多个函数 参数个数和参数类型不同
2.思考:编译器如何识别重载的函数 
三、内联函数
1.关键字:inline
2.内联编译是建议性的,又编译器决定 逻辑简单,调用频繁的函数建议使用内联 递归函数无法使用内联方式

inline
内联编译是建议性的,由编译器决定。逻辑简单,调用频繁的函数建议使用内联。递归函数无法使用内联方式。
总结
函数参数默认值 实参覆盖默认值。 函数重载 名称相同参数可变。 内联函数 效率高,由编译器决定是否使用
inline 函数名
for 和while循环不要用内联函数
递归函数无法使用内联方式

c++函数新特性:
声明函数参数默认值:有默认参数值的参数必须在参数表的最右端(从右向左左边的可有可无参数)如:void fun(int i,int j=5int k)为错,(int i,int k,int j=5)为正确
函数在声明时可以写参数默认值,但是在定义时不要写默认值
函数在无实参时则用默认值,有实参时覆盖默认值

函数重载:
在相同作用域内,用同一个函数名定义多个函数,函数的参数个数或参数类型不同
重载好处:比如求最大值(有时候要求两个数的最大值,有时候三个数),根据参数及返回值的不同调用最合适的函数

内联函数:可以省掉2和4两个步骤的时间,定义内联函数inline 类型 函数名(参数)
http://img.mukewang.com/55864f5f0001f94612800720-120-68.jpg
内联函数只是建议性的,要不要内联由编译器决定
逻辑简单(不包含循环),调用频繁的函数建议使用内联
递归函数无法使用内联方式

如果函数形参有默认值,则参数列表中最右边的参数必须有默认值!!!!
在函数声明时可以有函数参数默认值,但是在函数定义的时候最好不要带默认值!
函数重载,表现在函数返回类型,形参类型、个数
内联函数,关键字inline,调用时相当于把函数代码在调用函数中展开,节省了调用时间和返回时间,效率高,但是注意递归函数无法作为内联函数。。。
无欲则刚 关心则乱
原文地址:https://www.cnblogs.com/xjyxp/p/11236416.html