1 参数传递
- c
- 值传递
- 指针传递
- c++
- 值传递
- 指针传递
- 引用传递
- 准测
- 只是用值 const引用
- 会有值的变化 引用
- 引用与指针的区别
- 阅读体验性较差
2 内联函数
用inline 关键词修饰的函数
1 .成员函数称为内联函数
在类中定义的成员函数全部默认为内联函数,可以显性的加上inline标识符,或者不加。在类中声明的成员函数,如何加上了inline,则其为内联函数,如果没加,在类外定义该成员函数时加上了,则该成员函数也为内联函数。
2. 普通函数称为内联函数
在普通函数声明或者定义前加上inline。通过编译时,调用内联函数的地方,将不进行函数调用,而是使用,函数体替换调用处的函数名。类似于宏替换。
这种好处在于,在调用内联函数的时候,不需要进行函数跳转,直接可以下一步进行。
3. 内联函数,对于编译器而言,只是建议式的,编译器可以选择忽略。
2.1 内联函数与宏定义区别
- 宏定义:预处理阶段:进行代码替换,没有类型检查
- 内联函数:编译阶段插入到吗,有类型检查
3 默认参数
- 默认参数定义的顺序式从右至左,如果一个参数设定了默认值时,其右边的参数都要有默认值。
- 默认参数调用的时候,遵循参数调用顺序,自左向右逐个调用
3.1 可变参数
4 函数重载
- 定义
在同一作用域内,一组具有相同函数名,不同 参数列表的函数。
5 函数模板与泛型
- 泛型编程:
以独立于任何特定类型的方式编写代码,使用泛型程序的时候,我们需要提供具体程序实例所操作的类型或者值。
泛型编程与面向对象编程一样,都依赖于某种形式的多态性。
面向对象编程的多态性依赖于具有继承关系的类。只要使用基类的引用或者指针,基类类型或派生类的对象就可以使用相同的代码。
5.1 函数模板
- 定义:
- template 后面接 模板参数表
- 实例 template<tpyename/class T>
5.2 类模板
6.6 函数的递归
- 定义
递归是一种重要的程序设计方法,如果在一个函数、过程、或数据结构的定义中又调用了它自身,那么这个函数、过程或数据结构称为是递归定义的。