函数基础

全屏查看

1 函数基本概念 #

mindmap
    id1[函数基本概念]
        id1-1[什么是函数]
        id1-2[函数定义与声明]
        id1-3[函数的作用和意义]
        id1-4[函数在程序中的位置]
        id1-5[函数组成要素]
        id1-6[函数名命名规则]
        id1-7[参数列表]
        id1-8[返回类型]
        id1-9[函数体]
        id1-10[函数调用机制]
        id1-11[调用过程分析]
        id1-12[栈帧概念]
        id1-13[参数传递方式]
什么是函数
函数定义与声明
函数的作用和意义
函数在程序中的位置
函数组成要素
函数名命名规则
参数列表
返回类型
函数体
函数调用机制
调用过程分析
栈帧概念
参数传递方式

2 函数声明与定义 #

函数原型
原型语法格式
原型的作用
头文件中的函数声明
函数定义
定义语法结构
函数实现细节
内联函数定义
分离式编译
声明与定义分离
多文件编程
链接过程
mindmap
    id2[函数声明与定义]
        id2-1[函数原型]
        id2-2[原型语法格式]
        id2-3[原型的作用]
        id2-4[头文件中的函数声明]
        id2-5[函数定义]
        id2-6[定义语法结构]
        id2-7[函数实现细节]
        id2-8[内联函数定义]
        id2-9[分离式编译]
        id2-10[声明与定义分离]
        id2-11[多文件编程]
        id2-12[链接过程]

3 函数参数 #

mindmap
    id3[函数参数]
        id3-1[参数传递方式]
        id3-2[值传递]
        id3-3[引用传递]
        id3-4[指针传递]
        id3-5[常量参数]
        id3-6[参数类型]
        id3-7[基本类型参数]
        id3-8[数组参数]
        id3-9[结构体参数]
        id3-10[类对象参数]
        id3-11[默认参数]
        id3-12[默认参数语法]
        id3-13[默认参数规则]
        id3-14[默认参数使用场景]
        id3-15[可变参数]
        id3-16[可变参数函数]
        id3-17[va_list 使用]
        id3-18[可变参数限制]
参数传递方式
值传递
引用传递
指针传递
常量参数
参数类型
基本类型参数
数组参数
结构体参数
类对象参数
默认参数
默认参数语法
默认参数规则
默认参数使用场景
可变参数
可变参数函数
va_list 使用
可变参数限制

4 返回值 #

返回类型
void 返回类型
基本类型返回
引用返回
指针返回
返回值优化
RVO 返回值优化
NRVO 命名返回值优化
移动语义
多返回值实现
通过结构体返回多个值
通过引用参数返回多个值
使用 std::tuple
mindmap
    id4[返回值]
        id4-1[返回类型]
        id4-2[void 返回类型]
        id4-3[基本类型返回]
        id4-4[引用返回]
        id4-5[指针返回]
        id4-6[返回值优化]
        id4-7[RVO 返回值优化]
        id4-8[NRVO 命名返回值优化]
        id4-9[移动语义]
        id4-10[多返回值实现]
        id4-11[通过结构体返回多个值]
        id4-12[通过引用参数返回多个值]
        id4-13[使用 std::tuple]

5 函数重载 #

mindmap
    id5[函数重载]
        id5-1[重载概念]
        id5-2[函数重载定义]
        id5-3[重载解析规则]
        id5-4[重载与作用域]
        id5-5[重载条件]
        id5-6[参数类型不同]
        id5-7[参数个数不同]
        id5-8[参数顺序不同]
        id5-9[重载限制]
        id5-10[返回类型不同不能重载]
        id5-11[默认参数影响]
        id5-12[常量性重载]
重载概念
函数重载定义
重载解析规则
重载与作用域
重载条件
参数类型不同
参数个数不同
参数顺序不同
重载限制
返回类型不同不能重载
默认参数影响
常量性重载

6 函数模板 #

模板基础
模板函数定义
模板参数
模板实例化
模板特化
全特化
偏特化
特化应用场景
模板重载
函数模板重载
模板与非模板重载
重载决议
mindmap
    id6[函数模板]
        id6-1[模板基础]
        id6-2[模板函数定义]
        id6-3[模板参数]
        id6-4[模板实例化]
        id6-5[模板特化]
        id6-6[全特化]
        id6-7[偏特化]
        id6-8[特化应用场景]
        id6-9[模板重载]
        id6-10[函数模板重载]
        id6-11[模板与非模板重载]
        id6-12[重载决议]

7 内联函数 #

mindmap
    id7[内联函数]
        id7-1[内联概念]
        id7-2[内联函数定义]
        id7-3[内联机制原理]
        id7-4[内联优缺点]
        id7-5[内联使用]
        id7-6[inline 关键字]
        id7-7[类内成员函数]
        id7-8[内联限制条件]
        id7-9[内联与宏]
        id7-10[内联函数 vs 宏函数]
        id7-11[类型安全检查]
        id7-12[调试支持]
内联概念
内联函数定义
内联机制原理
内联优缺点
内联使用
inline 关键字
类内成员函数
内联限制条件
内联与宏
内联函数 vs 宏函数
类型安全检查
调试支持

8 递归函数 #

递归原理
递归定义
递归调用过程
递归终止条件
递归类型
直接递归
间接递归
尾递归优化
递归应用
数学问题求解
数据结构遍历
分治算法实现
mindmap
    id8[递归函数]
        id8-1[递归原理]
        id8-2[递归定义]
        id8-3[递归调用过程]
        id8-4[递归终止条件]
        id8-5[递归类型]
        id8-6[直接递归]
        id8-7[间接递归]
        id8-8[尾递归优化]
        id8-9[递归应用]
        id8-10[数学问题求解]
        id8-11[数据结构遍历]
        id8-12[分治算法实现]

9 函数指针 #

mindmap
    id9[函数指针]
        id9-1[函数指针基础]
        id9-2[函数指针声明]
        id9-3[函数指针赋值]
        id9-4[通过函数指针调用]
        id9-5[函数指针应用]
        id9-6[回调函数]
        id9-7[函数表]
        id9-8[策略模式实现]
        id9-9[现代替代方案]
        id9-10[std::function]
        id9-11[lambda 表达式]
        id9-12[函数对象]
函数指针基础
函数指针声明
函数指针赋值
通过函数指针调用
函数指针应用
回调函数
函数表
策略模式实现
现代替代方案
std::function
lambda 表达式
函数对象

10 异常处理 #

异常机制
throw 语句
try-catch 块
异常传播
异常规范
noexcept 说明符
异常安全保证
异常与资源管理
自定义异常
异常类设计
标准异常继承
异常信息传递
mindmap
    id10[异常处理]
        id10-1[异常机制]
        id10-2[throw 语句]
        id10-3[try-catch 块]
        id10-4[异常传播]
        id10-5[异常规范]
        id10-6[noexcept 说明符]
        id10-7[异常安全保证]
        id10-8[异常与资源管理]
        id10-9[自定义异常]
        id10-10[异常类设计]
        id10-11[标准异常继承]
        id10-12[异常信息传递]

11 函数最佳实践 #

mindmap
    id11[函数最佳实践]
        id11-1[设计原则]
        id11-2[单一职责原则]
        id11-3[函数长度控制]
        id11-4[参数设计规范]
        id11-5[性能优化]
        id11-6[避免不必要的拷贝]
        id11-7[内联函数使用]
        id11-8[循环优化技巧]
        id11-9[代码可读性]
        id11-10[函数命名规范]
        id11-11[注释编写标准]
        id11-12[代码结构清晰化]
设计原则
单一职责原则
函数长度控制
参数设计规范
性能优化
避免不必要的拷贝
内联函数使用
循环优化技巧
代码可读性
函数命名规范
注释编写标准
代码结构清晰化

12 高级特性 #

lambda 表达式
lambda 语法
捕获列表
泛型 lambda
constexpr 函数
constexpr 概念
编译时计算
constexpr 限制
协程函数
协程基础概念
co_await 使用
协程应用场景
mindmap
    id12[高级特性]
        id12-1[lambda 表达式]
        id12-2[lambda 语法]
        id12-3[捕获列表]
        id12-4[泛型 lambda]
        id12-5[constexpr 函数]
        id12-6[constexpr 概念]
        id12-7[编译时计算]
        id12-8[constexpr 限制]
        id12-9[协程函数]
        id12-10[协程基础概念]
        id12-11[co_await 使用]
        id12-12[协程应用场景]