速度还行,两天看完一章,就是有细节没去扣。书上的大部分知识点和代码都看了,这个还是可以的。
今天继续来学习函数的高级特性,要涉及到以下的主题。
- 内联函数(inline function)
- 引用变量(reference variable)
- 通过引用传递函数参数
- 默认变量
- 函数重载
- 函数模板(template)
- 函数模板的specializations
C++内联函数
从机器语言的角度去解释函数的调用为什么会有开销,这一点值得深入研究以下,增加认识。
C++的内敛函数会用相应的代码去替代函数调用,这样的话不用跳到另一处去执行然后再跳回来,所以内敛函数要比一般的函数运行的稍快一些。
内敛函数不好的地方就是会占用内存,比如这个函数在10个地方被调用了,那么内联函数的这个代码会被存10份。
如何声明一个内联函数?
什么时候适合使用内联函数?
编译器一定认可你的内联函数么?
C++内联函数和C的宏定义(macro definition)
#include <iostream> // 内联函数的定义 inline double square(double x) {return x * x; }; int main() { using namespace std; double a, b; double c = 13.0; a = square(5.0); b = square(4.5 + 7.5); cout << "a = " << ", b = " << b << "\n"; cout << "c = " << c; // c++的意思是, 先去计算表达式, c = 13 // 把c = 3 拿去函数调用, 然后c再自增 cout << ", c squared = " << square(c++) << "\n"; cout << "Now c = " << c << "\n"; ; }
C++引用
https://www.cnblogs.com/tuhooo/p/5377406.html
默认参数
不太喜欢用默认参数,就这样吧
函数重载
这个概念我知道
函数模板
C++里面的泛型编程,抽取与类型无关的代码,达到通用的效果。