1、函数重载:
一组函数,函数名相同,参数列表个数或者类型不同,那么这一组函数就称作-函数重载。
一组函数要称得上重载 ,一定先处于同一个作用域当中的。
一组函数,函数名相同,参数列表也相同,仅仅是返回值不同?不叫函数重载。
函数重载也是静态(编译时期)的多态。
C++为什么支持函数重载,C语言不支持函数重载?
C++代码产生函数符号的时候,函数名+函数列表类型组成的!
C代码产生函数符号的时候,函数名来决定!
C++调用C:无法直接调用了?怎么办?把C函数的声明扩在extern"C"里面。
C调用C++:无法直接调用了?怎么办? 把C++源码扩在extern"C"里面。
2、inline内联函数
inline内联函数和普通函数的区别???
inline内联函数:在编译过程中,就没有函数的调用开销了,在函数的调用点直接把函数的代码进行展开处理了。
inline函数不再生成相应的函数符号
inline函数只是建议编译器把这个函数处理成内联函数,但是不是所有的inline都会被编译器处理成内联函数 - 递归
debug版本上,inline是不起作用的;inline只有在release版本下才能出现
3、形参带默认值的函数
给默认值的时候,从右向左给
调用效率的问题
定义处可以给形参默认值,声明处也可以给形参默认值
形参给默认值的时候,不管是定义处给还是声明处给,形参默认值只能出现一次