C++基础3:函数的重载
2017-03-01 23:50
239 查看
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) { }
内联函数在函数调用的位置,直接把二进制代码复制过去
内联函数在调用时,省了开栈 清理栈的时间开销,提高了执行效率,但是会造成代码体积变大,内存消耗也会提高
内联函数 只是给编译器的一个建议 ,建议成功,则以内联函数的形式调用,见不成功,则以普通函数形式调用
函数体积大 调用少 不适合内联
函数体积小 经常调用 适合内联
递归函数 无法实现内联
参数列表不同:
个数
顺序
类型
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) { }
内联函数在函数调用的位置,直接把二进制代码复制过去
内联函数在调用时,省了开栈 清理栈的时间开销,提高了执行效率,但是会造成代码体积变大,内存消耗也会提高
内联函数 只是给编译器的一个建议 ,建议成功,则以内联函数的形式调用,见不成功,则以普通函数形式调用
函数体积大 调用少 不适合内联
函数体积小 经常调用 适合内联
递归函数 无法实现内联
相关文章推荐
- [C++基础]重载、覆盖、多态与函数隐藏(4)
- [C++基础]重载、覆盖、多态与函数隐藏(1)
- c++中的函数重载基础
- C++基础知识复习--函数重载
- 【C++基础学习】C++怎样重载一个函数名
- [C++基础]重载、覆盖、多态与函数隐藏(2)
- C++语言基础 例程 函数重载
- C++基础学习笔记----第四课(函数的重载、C和C++的相互调用)
- [C++基础]重载、覆盖、多态与函数隐藏(2)
- C++基础学习笔记----第四课(函数的重载、C和C++的相互调用)
- C++基础知识复习--运算符重载(非成员函数重载和成员函数重载)
- C++基础:C++函数名字的隐藏:重写、重载、重定义
- c++ 基础知识(输入输出、namespace命名空间、引用、函数重载模版、内存管理)
- [C++基础]重载、覆盖、多态与函数隐藏(3)
- C++基础学习系列--2、递归思想,内置函数,函数重载,函数模板,带默认值函数
- 【C++基础学习】引用和指针、重载、函数、内存管理
- [C++基础]重载、覆盖、多态与函数隐藏(3)
- c++基础9:函数,函数重载和运算符重载
- [C++基础]重载、覆盖、多态与函数隐藏(4)
- C++基础:C++函数名字的隐藏:重写、重载、重定义