征服C++ 11—70714人已学习
课程介绍
本教程是C++ Primer Plus 6th 、The C++ Programming Language_4th、Thinking in C++等国外顶级的C++著作的精华和个人超过10年的C++使用经验的完美结合。
课程收益
让学员完全掌握C++ 11的所有核心特性,为以后从事C++开发奠定坚实的基础。
讲师介绍
李宁 更多讲师课程
东北大学计算机专业硕士研究生,欧瑞科技创始人&CEO,曾任国内著名软件公司项目经理,畅销书作者,企业IT内训讲师,CSDN学院专家讲师,制作视频课程超过1000小时。拥有超过15年的企业内训经验和开发经验。目前主要从事Python、人工智能、大数据、区块链、JavaScript、Java、C++等技术的研究和开发,现在正在带领团队开发支持区块链的跨平台开发系统。曾出版超过30多本IT畅销书,主要著作包括《Python从菜鸟到高手》、《第一行代码:以太坊》等。授课风趣幽默,讲解条理清晰、通俗易懂,对知识有自己独到见解。能举一反三,发散学生的思维,指引学生发掘适合自己的学习方法。
课程大纲
第1章:C++基础
1. 课程概述(包含移动应用和游戏开发学习网络介绍) 10:38
2. C++的开发环境搭建 19:47
3. 先来编写第一个C++程序 8:56
4. C++程序的总入口:main函数 13:47
5. C++注释到底是怎样的 2:10
6. 第一个预编译指令#include 6:44
7. 命名空间(namespace)、cout与endl 4:52
8. 变量和命名规范 24:34
第2章:简单数据类型与算数运算符
1. 基础数据类型:整型 20:02
2. 基础数据类型:字符(char) 13:40
3. C++中的特殊字符 15:45
4. 宽字符类型(包括C++ 11支持的类型) 14:02
5. 基础数据类型:布尔(bool) 4:04
6. 基础数据类型:浮点类型 30:22
7. 浮点类型值的存储方式 46:06
8. 变量初始化(包括C++ 11中的初始化方式) 7:58
9. 常量 2:21
10. C++中的基本操作符(Operator) 12:09
11. 自动类型转换 22:52
12. 强制类型转换 6:21
13. C++ 11中的auto关键字 17:48
第3章:复杂数据类型
1. 数组基础 9:23
2. 数组初始化(包括C++ 11中的数组初始化方法) 10:04
3. C风格的字符串 19:30
4. C风格字符串的输入 20:54
5. C++风格的字符串:string类 6:25
6. 字符串的复制、连接和获取长度 15:19
7. 宽字符串和Raw String 15:07
8. 结构体的定义、初始化和使用 11:31
9. 结构体(Struct)数组 6:15
10. 计算结构体(Struct)尺寸 20:54
11. 结构体(Struct)的位字段 13:36
12. 共用体(Union) 15:08
13. 枚举类型变量的定义和赋值 6:04
14. 设置枚举类型成员的值 12:30
15. 枚举类(enum class):C++ 11新特性 11:24
16. 枚举类型的尺寸 14:32
17. 匿名类型和类型别名 15:39
18. 指针基础 22:03
19. 指针移动与数据类型 12:39
20. 关于指针初始化的问题 7:07
21. 使用new动态分配内存空间 7:24
22. 使用delete释放内存空间 15:40
23. 动态创建和释放数组 7:29
24. 使用动态创建的数组 10:10
25. 指针与字符串 9:20
26. 常量指针与指针常量 8:57
27. 使用new动态创建结构体 5:41
28. 使用new动态创建共用体 4:21
29. 多维数组和多级指针 32:51
30. vector模板类基础 10:26
31. 数组模板基础 26:41
第4章:循环语句
1. for循环 26:36
2. 用for-in循环枚举集合中的元素(C++ 11) 7:13
3. 集合与指针(begin&&end;) 11:42
4. while循环 13:55
5. do...while循环 10:29
6. 循环退出(break)和继续(continue) 5:47
7. 自增(++)、自减(--)和组合赋值操作符 21:48
8. goto语句与深层循环 18:17
第5章:条件语句和逻辑运算符
1. 条件语句if和do...while(0)形式的宏 18:28
2. 逻辑表达式与短路问题 12:30
3. 处理字符的函数集:cctype 6:56
4. 问号(?)操作符 14:22
5. 条件语句:switch 16:44
第6章:函数基础
1. 函数基础 11:53
2. 函数参数与值传递 5:02
3. 函数与数组类型的参数 4:41
4. 函数与C风格的字符串 5:43
5. 函数与结构体、共用体 9:02
6. 函数指针 9:33
第7章:函数深度探索
1. 内联(inline)函数 7:48
2. 可在编译时计算为常量的函数(constexpr) 9:29
3. 引用类型的变量 6:38
4. 引用类型的函数参数 7:51
5. 引用类型的结构体函数参数 4:47
6. 函数中的默认参数 9:56
7. 函数重载(overload) 11:20
8. 函数模板(相当于Java中的泛型) 8:26
9. 函数模板重载 6:21
10. 函数模板的特例化 9:07
11. 模板函数特例化(补充) 2:37
12. decltype关键字(C++ 11) 8:15
13. decltype的规则(C++ 11) 16:20
14. decltype与返回值 8:59
第8章:编译、链接和命名空间
1. #include头文件的原理和规则 16:27
2. 解决#include重复定义的问题 6:15
3. #include的循环引用问题 9:52
4. 头文件中建议包含的和不建议包含的内容 11:49
5. 定义和声明 9:04
6. 链接性为外部和内部的变量 6:27
7. 函数中的静态变量(无链接性的局部变量) 4:41
8. mutable说明符(允许设置const结构体变量的成员值) 3:11
9. const对链接性的影响 4:18
10. 函数的链接性 8:19
11. 语言链接性 10:38
12. 命名空间的定义 9:34
13. 使用using namespace和using引用命名空间中的资源 2:50
14. 嵌套命名空间 4:09
15. 匿名命名空间 3:33
第9章:类和对象
1. 类定义和成员访问控制 17:43
2. 定义和实现类中的方法 10:17
3. 内联方法 5:07
4. 类的初始化和构造方法 14:15
5. 默认构造方法和参数默认值 5:58
6. 析构方法 8:53
7. C++ 11初始化对象的方式总结 3:38
8. 常量(const)方法 5:04
9. this指针 2:54
10. 对象数组 11:05
11. 类中的常量(const) 8:49
12. 类中的枚举类型 4:23
第10章:类的高级技术
1. 操作符重载 15:23
2. 函数形式的操作符重载 7:27
3. 操作符重载的限制 15:36
4. 友元函数 14:27
5. 友元函数与<<操作符重载 8:40
6. 类型转换(数值和对象之间的互转,转换函数的编写) 10:15
7. 类中静态变量和静态常量的初始化问题 15:57
8. 复制构造方法 14:34
9. 使用复制构造方法可能会带来的问题 9:51
10. 类的静态成员方法 3:10
11. 函数/方法的参数和返回值应该返回对象,还是对象引用 12:27
12. 操作符重载返回常量对象引用,还是对象引用 5:29
第11章:类的继承
1. 类的继承 5:26
2. 子类构造方法调用父类的构造方法 13:30
3. 虚方法与多态 15:15
4. protected访问控制 5:24
5. 抽象类和纯虚函数 7:49
第12章:代码重用
1. valarray模板类 4:41
2. 成员变量的初始化顺序 4:05
3. C++中的单件模式(Singleton) 13:36
4. explicit与单参数的构造方法 3:42
5. 私有(private)继承 6:01
6. 避免操作符重载造成的递归调用 4:46
7. 保护(protected)继承 3:54
8. 使用using重新定义访问权限 8:24
9. C++中的多继承 11:50
10. 多继承与共同基类的问题 4:48
11. 虚基类(虚继承) 9:41
12. 多继承与父类方法冲突 6:18
13. 模板类 17:26
14. 模板中的非类型参数 11:21
15. 模板的继承和组合 9:46
16. 递归使用模板 3:44
17. 拥有多个类型参数的模板 3:13
18. 默认类型参数 2:01
19. 模板类的显式具体化 13:59
20. 模板类的部分具体化 17:07
21. 成员模板 10:47
22. 将模板类作为类型参数的类型 4:28
23. 模板类与友元函数 18:04
24. 模板别名(C++ 11) 8:08
第13章:友元类和嵌套类
1. 友元类 9:26
2. 友元成员方法(相当虐心) 19:28
3. 互为友元类 7:25
4. 共同的友元函数 5:46
5. 嵌套类基础 6:44
6. 嵌套类的访问权限 12:49
7. 模板类中的嵌套类 20:01
第14章:异常处理
1. 错误返回码与abort函数 14:15
2. 引发异常与捕捉异常(throw,try...catch) 11:34
3. 将对象作为异常表达式抛出 8:55
4. 异常捕捉的else 11:56
5. 异常类的基类:exception 4:12
6. throw和noexcept 18:48
7. 系统的预定义异常类 15:32
8. 捕获由new产生的异常 6:53
9. 阻止new抛出异常 2:19
第15章:类型识别和转换
1. 类型识别:dynamic_cast运算符 17:04
2. dynamic_cast与引用类型转换 10:09
3. 类型识别:typeid运算符 14:14
4. 类型转换运算符概述 6:50
5. const_cast运算符 6:29
6. static_cast运算符 3:58
7. reinterpret_cast运算符 5:50
第16章:string类与智能指针
1. string类的构造方法 21:54
2. 输入string类型的值 11:00
3. string值的比较和定位 20:56
4. 获取string的尺寸和分配的空间大小 13:52
5. 智能指针的基本用法 15:01
6. auto_ptr、shared_ptr和unique_ptr的区别和应用场景 12:42
7. unique_ptr与临时右值 6:00
8. 如何选择智能指针 9:06
第17章:标准模板库(STL)
1. 标准模板库(STL)概述 5:46
2. 迭代器(Iterator)基础 30:31
3. 用于替代for语句的for_each函数 8:31
4. 用于随机排列容器中元素值的random_shuffle函数 4:25
5. 用于对容器中元素值排序的sort函数 16:16
6. 用于查找容器中元素值的find函数 4:06
7. 用于复制容器元素值的copy函数 3:17
8. 枚举容器中元素的3种方法 5:40
9. 将STL算法用于非STL容器 9:08
10. STL中的容器 12:51
11. 双向链表容器类:list 7:31
12. 双端队列deque 7:31
13. 同时兼具vector和list优势的双端队列:deque 4:47
14. 单向链表容器:forward_list(C++ 11) 4:47
15. 队列容器类:queue 7:35
16. 永远获得最大值的队列容器类:priority_queue 4:14
17. 栈容器类:stack 3:37
18. 数组模板类:array 5:34
19. 集合容器类:set 15:11
20. 支持重复值的集合容器类:multiset 3:07
21. 映射容器类:map 10:16
22. 允许key重复的映射容器类:multimap 15:33
23. 无序关联容器(C++ 11) 7:37
24. 函数对象 11:29
25. STL中预定义的函数对象(函数符) 9:30
26. STL中的算法函数 11:33
27. STL与string 6:30
第18章:更多的C++ 11新特性
1. lambda表达式基础 16:39
2. 为什么要使用lambda表达式 6:39
3. lambda表达式的参数和返回值类型 7:35
4. lambda表达式与变量的访问权限 11:42
5. lambda表达式类型 8:02
6. 将lambda表达式作为委托(Delegate)的方法 9:07
7. 模板调用的低效性 12:27
8. 用function包装器解决模板调用的低效性问题 3:41
9. 更简洁地使用function包装器 6:24
10. 可变参数模板 10:50
第19章:准C++标准库:Boost
1. Boost简介 6:20
2. 下载和安装Boost Library 9:50
3. 第一个Boost程序 8:56
4. 字符串和日期类型互转 27:50
5. 计算两个时间之间的间隔(以天为单位) 4:10
6. 通过改变年来改变日期 4:18
7. 计算指定月的天数 10:03
8. array的新特性 7:14
9. 双值映射(bimap) 10:33
10. 多值索引容器(multi_index_container) 20:08
11. 线程基础 6:54
12. 线程中断 4:40
13. 线程同步 5:12
14. 正则表达式与字符串进行比较 6:53
15. 在字符串中搜索所有满足正则表达式规则的子字符串 4:46
16. 替换字符串中符合正则表达式规则的子字符串 1:37
17. 分隔字符串 3:20
18. 元组类型(tuple) 2:26
大家可以点击【 查看详情】查看我的课程
课程介绍
本教程是C++ Primer Plus 6th 、The C++ Programming Language_4th、Thinking in C++等国外顶级的C++著作的精华和个人超过10年的C++使用经验的完美结合。
课程收益
让学员完全掌握C++ 11的所有核心特性,为以后从事C++开发奠定坚实的基础。
讲师介绍
李宁 更多讲师课程
东北大学计算机专业硕士研究生,欧瑞科技创始人&CEO,曾任国内著名软件公司项目经理,畅销书作者,企业IT内训讲师,CSDN学院专家讲师,制作视频课程超过1000小时。拥有超过15年的企业内训经验和开发经验。目前主要从事Python、人工智能、大数据、区块链、JavaScript、Java、C++等技术的研究和开发,现在正在带领团队开发支持区块链的跨平台开发系统。曾出版超过30多本IT畅销书,主要著作包括《Python从菜鸟到高手》、《第一行代码:以太坊》等。授课风趣幽默,讲解条理清晰、通俗易懂,对知识有自己独到见解。能举一反三,发散学生的思维,指引学生发掘适合自己的学习方法。
课程大纲
第1章:C++基础
1. 课程概述(包含移动应用和游戏开发学习网络介绍) 10:38
2. C++的开发环境搭建 19:47
3. 先来编写第一个C++程序 8:56
4. C++程序的总入口:main函数 13:47
5. C++注释到底是怎样的 2:10
6. 第一个预编译指令#include 6:44
7. 命名空间(namespace)、cout与endl 4:52
8. 变量和命名规范 24:34
第2章:简单数据类型与算数运算符
1. 基础数据类型:整型 20:02
2. 基础数据类型:字符(char) 13:40
3. C++中的特殊字符 15:45
4. 宽字符类型(包括C++ 11支持的类型) 14:02
5. 基础数据类型:布尔(bool) 4:04
6. 基础数据类型:浮点类型 30:22
7. 浮点类型值的存储方式 46:06
8. 变量初始化(包括C++ 11中的初始化方式) 7:58
9. 常量 2:21
10. C++中的基本操作符(Operator) 12:09
11. 自动类型转换 22:52
12. 强制类型转换 6:21
13. C++ 11中的auto关键字 17:48
第3章:复杂数据类型
1. 数组基础 9:23
2. 数组初始化(包括C++ 11中的数组初始化方法) 10:04
3. C风格的字符串 19:30
4. C风格字符串的输入 20:54
5. C++风格的字符串:string类 6:25
6. 字符串的复制、连接和获取长度 15:19
7. 宽字符串和Raw String 15:07
8. 结构体的定义、初始化和使用 11:31
9. 结构体(Struct)数组 6:15
10. 计算结构体(Struct)尺寸 20:54
11. 结构体(Struct)的位字段 13:36
12. 共用体(Union) 15:08
13. 枚举类型变量的定义和赋值 6:04
14. 设置枚举类型成员的值 12:30
15. 枚举类(enum class):C++ 11新特性 11:24
16. 枚举类型的尺寸 14:32
17. 匿名类型和类型别名 15:39
18. 指针基础 22:03
19. 指针移动与数据类型 12:39
20. 关于指针初始化的问题 7:07
21. 使用new动态分配内存空间 7:24
22. 使用delete释放内存空间 15:40
23. 动态创建和释放数组 7:29
24. 使用动态创建的数组 10:10
25. 指针与字符串 9:20
26. 常量指针与指针常量 8:57
27. 使用new动态创建结构体 5:41
28. 使用new动态创建共用体 4:21
29. 多维数组和多级指针 32:51
30. vector模板类基础 10:26
31. 数组模板基础 26:41
第4章:循环语句
1. for循环 26:36
2. 用for-in循环枚举集合中的元素(C++ 11) 7:13
3. 集合与指针(begin&&end;) 11:42
4. while循环 13:55
5. do...while循环 10:29
6. 循环退出(break)和继续(continue) 5:47
7. 自增(++)、自减(--)和组合赋值操作符 21:48
8. goto语句与深层循环 18:17
第5章:条件语句和逻辑运算符
1. 条件语句if和do...while(0)形式的宏 18:28
2. 逻辑表达式与短路问题 12:30
3. 处理字符的函数集:cctype 6:56
4. 问号(?)操作符 14:22
5. 条件语句:switch 16:44
第6章:函数基础
1. 函数基础 11:53
2. 函数参数与值传递 5:02
3. 函数与数组类型的参数 4:41
4. 函数与C风格的字符串 5:43
5. 函数与结构体、共用体 9:02
6. 函数指针 9:33
第7章:函数深度探索
1. 内联(inline)函数 7:48
2. 可在编译时计算为常量的函数(constexpr) 9:29
3. 引用类型的变量 6:38
4. 引用类型的函数参数 7:51
5. 引用类型的结构体函数参数 4:47
6. 函数中的默认参数 9:56
7. 函数重载(overload) 11:20
8. 函数模板(相当于Java中的泛型) 8:26
9. 函数模板重载 6:21
10. 函数模板的特例化 9:07
11. 模板函数特例化(补充) 2:37
12. decltype关键字(C++ 11) 8:15
13. decltype的规则(C++ 11) 16:20
14. decltype与返回值 8:59
第8章:编译、链接和命名空间
1. #include头文件的原理和规则 16:27
2. 解决#include重复定义的问题 6:15
3. #include的循环引用问题 9:52
4. 头文件中建议包含的和不建议包含的内容 11:49
5. 定义和声明 9:04
6. 链接性为外部和内部的变量 6:27
7. 函数中的静态变量(无链接性的局部变量) 4:41
8. mutable说明符(允许设置const结构体变量的成员值) 3:11
9. const对链接性的影响 4:18
10. 函数的链接性 8:19
11. 语言链接性 10:38
12. 命名空间的定义 9:34
13. 使用using namespace和using引用命名空间中的资源 2:50
14. 嵌套命名空间 4:09
15. 匿名命名空间 3:33
第9章:类和对象
1. 类定义和成员访问控制 17:43
2. 定义和实现类中的方法 10:17
3. 内联方法 5:07
4. 类的初始化和构造方法 14:15
5. 默认构造方法和参数默认值 5:58
6. 析构方法 8:53
7. C++ 11初始化对象的方式总结 3:38
8. 常量(const)方法 5:04
9. this指针 2:54
10. 对象数组 11:05
11. 类中的常量(const) 8:49
12. 类中的枚举类型 4:23
第10章:类的高级技术
1. 操作符重载 15:23
2. 函数形式的操作符重载 7:27
3. 操作符重载的限制 15:36
4. 友元函数 14:27
5. 友元函数与<<操作符重载 8:40
6. 类型转换(数值和对象之间的互转,转换函数的编写) 10:15
7. 类中静态变量和静态常量的初始化问题 15:57
8. 复制构造方法 14:34
9. 使用复制构造方法可能会带来的问题 9:51
10. 类的静态成员方法 3:10
11. 函数/方法的参数和返回值应该返回对象,还是对象引用 12:27
12. 操作符重载返回常量对象引用,还是对象引用 5:29
第11章:类的继承
1. 类的继承 5:26
2. 子类构造方法调用父类的构造方法 13:30
3. 虚方法与多态 15:15
4. protected访问控制 5:24
5. 抽象类和纯虚函数 7:49
第12章:代码重用
1. valarray模板类 4:41
2. 成员变量的初始化顺序 4:05
3. C++中的单件模式(Singleton) 13:36
4. explicit与单参数的构造方法 3:42
5. 私有(private)继承 6:01
6. 避免操作符重载造成的递归调用 4:46
7. 保护(protected)继承 3:54
8. 使用using重新定义访问权限 8:24
9. C++中的多继承 11:50
10. 多继承与共同基类的问题 4:48
11. 虚基类(虚继承) 9:41
12. 多继承与父类方法冲突 6:18
13. 模板类 17:26
14. 模板中的非类型参数 11:21
15. 模板的继承和组合 9:46
16. 递归使用模板 3:44
17. 拥有多个类型参数的模板 3:13
18. 默认类型参数 2:01
19. 模板类的显式具体化 13:59
20. 模板类的部分具体化 17:07
21. 成员模板 10:47
22. 将模板类作为类型参数的类型 4:28
23. 模板类与友元函数 18:04
24. 模板别名(C++ 11) 8:08
第13章:友元类和嵌套类
1. 友元类 9:26
2. 友元成员方法(相当虐心) 19:28
3. 互为友元类 7:25
4. 共同的友元函数 5:46
5. 嵌套类基础 6:44
6. 嵌套类的访问权限 12:49
7. 模板类中的嵌套类 20:01
第14章:异常处理
1. 错误返回码与abort函数 14:15
2. 引发异常与捕捉异常(throw,try...catch) 11:34
3. 将对象作为异常表达式抛出 8:55
4. 异常捕捉的else 11:56
5. 异常类的基类:exception 4:12
6. throw和noexcept 18:48
7. 系统的预定义异常类 15:32
8. 捕获由new产生的异常 6:53
9. 阻止new抛出异常 2:19
第15章:类型识别和转换
1. 类型识别:dynamic_cast运算符 17:04
2. dynamic_cast与引用类型转换 10:09
3. 类型识别:typeid运算符 14:14
4. 类型转换运算符概述 6:50
5. const_cast运算符 6:29
6. static_cast运算符 3:58
7. reinterpret_cast运算符 5:50
第16章:string类与智能指针
1. string类的构造方法 21:54
2. 输入string类型的值 11:00
3. string值的比较和定位 20:56
4. 获取string的尺寸和分配的空间大小 13:52
5. 智能指针的基本用法 15:01
6. auto_ptr、shared_ptr和unique_ptr的区别和应用场景 12:42
7. unique_ptr与临时右值 6:00
8. 如何选择智能指针 9:06
第17章:标准模板库(STL)
1. 标准模板库(STL)概述 5:46
2. 迭代器(Iterator)基础 30:31
3. 用于替代for语句的for_each函数 8:31
4. 用于随机排列容器中元素值的random_shuffle函数 4:25
5. 用于对容器中元素值排序的sort函数 16:16
6. 用于查找容器中元素值的find函数 4:06
7. 用于复制容器元素值的copy函数 3:17
8. 枚举容器中元素的3种方法 5:40
9. 将STL算法用于非STL容器 9:08
10. STL中的容器 12:51
11. 双向链表容器类:list 7:31
12. 双端队列deque 7:31
13. 同时兼具vector和list优势的双端队列:deque 4:47
14. 单向链表容器:forward_list(C++ 11) 4:47
15. 队列容器类:queue 7:35
16. 永远获得最大值的队列容器类:priority_queue 4:14
17. 栈容器类:stack 3:37
18. 数组模板类:array 5:34
19. 集合容器类:set 15:11
20. 支持重复值的集合容器类:multiset 3:07
21. 映射容器类:map 10:16
22. 允许key重复的映射容器类:multimap 15:33
23. 无序关联容器(C++ 11) 7:37
24. 函数对象 11:29
25. STL中预定义的函数对象(函数符) 9:30
26. STL中的算法函数 11:33
27. STL与string 6:30
第18章:更多的C++ 11新特性
1. lambda表达式基础 16:39
2. 为什么要使用lambda表达式 6:39
3. lambda表达式的参数和返回值类型 7:35
4. lambda表达式与变量的访问权限 11:42
5. lambda表达式类型 8:02
6. 将lambda表达式作为委托(Delegate)的方法 9:07
7. 模板调用的低效性 12:27
8. 用function包装器解决模板调用的低效性问题 3:41
9. 更简洁地使用function包装器 6:24
10. 可变参数模板 10:50
第19章:准C++标准库:Boost
1. Boost简介 6:20
2. 下载和安装Boost Library 9:50
3. 第一个Boost程序 8:56
4. 字符串和日期类型互转 27:50
5. 计算两个时间之间的间隔(以天为单位) 4:10
6. 通过改变年来改变日期 4:18
7. 计算指定月的天数 10:03
8. array的新特性 7:14
9. 双值映射(bimap) 10:33
10. 多值索引容器(multi_index_container) 20:08
11. 线程基础 6:54
12. 线程中断 4:40
13. 线程同步 5:12
14. 正则表达式与字符串进行比较 6:53
15. 在字符串中搜索所有满足正则表达式规则的子字符串 4:46
16. 替换字符串中符合正则表达式规则的子字符串 1:37
17. 分隔字符串 3:20
18. 元组类型(tuple) 2:26
大家可以点击【 查看详情】查看我的课程