1、在同一作用域,函数名相同,参数列表不同的函数构成重载关系
参数列表不同:
个数
顺序
类型
2、函数重载的原理
C函数在进行编译时,编译器只考虑函数的名字
C++函数在编译时,编译器不但要考虑函数名,还会考虑参数列表
3、函数的哑元
一个函数的参数,只有类型,没有形参名,这个参数就叫哑元
void show(void)
void show(int)
void show(double)
4、函数参数的默认值
int add(int x,int y=12,int z=20) { }
add(1);
add(1,2);
add(1,2,3);
如果一个函数的参数设置了默认值,则调用这个函数,不给这个参数赋值就使用默认值,如果给这个赋值,则替代掉默认值
5、内联函数 inline
inline void add(int x,int y) { }
内联函数在函数调用的位置,直接把二进制代码复制过去
内联函数在调用时,省了开栈 清理栈的时间开销,提高了执行效率,但是会造成代码体积变大,内存消耗也会提高
内联函数 只是给编译器的一个建议 ,建议成功,则以内联函数的形式调用,见不成功,则以普通函数形式调用
函数体积大 调用少 不适合内联
函数体积小 经常调用 适合内联
递归函数 无法实现内联