C++学习目录大纲
为什么不学习现代C++?!
Tip
下面内容是我初学时候学的, 很多都是非现代的, 有错误的!!!
一、基础篇
1.1 面向对象
1.2 io流篇
1.3 内存模型
二。STL库篇
三、进阶篇
3.1 C++11常用新特性
3.2 C++17常用新特性
实时可改变类型的类型 std::any (像Python的变量一样)
将一个函数和一个参数包一起调用 std::apply (类似Qt槽函数)
解包tuple作为构造函数参数构造对象 std::make_from_tuple
只读的string更省内存 std::string_view
文件系统库 std::filesystem (类似Python的os模块)
3.3 C++20常用新特性
format(更像Python的print格式化字符串)
跨度(更安全的遍历指针
代表的数组,防止程序员写错)
并发(多线程)
numbers(数学库)
concept(概念(concepts)约束模板类型的语法糖)
四、C++网络编程
4.1 Linux网络编程
学习实践版本: B站: TCP/IP 网络编程从零开始
(上面只是实现了基础的同步io, 也就是不支持并发...) + (win 编写) + (课程已经到头了(免费的)), 所以我直接转战Linux, 使用VSCode远程连接到Linux并实现免密码登录 进行编程, 来规避环境问题(CLion + cmake 我是真的用不习惯 =-=(有空再学))
系统的理论篇
4.2 Windows网络编程
4.3 [第三方库] Protobuf
网络通信数据的序列化与反序列化
五、C++多线程
5.1 C库实现
5.2 C++11 std::thread库
call_once (多个线程只执行某代码一次)
5.3 线程池
六、CMake
6.1 CMakeLists.txt的编写
6.1.1 静态库与动态库
七、BUG篇
7.1 链接属性
7.2 类型转换
7.3 编码问题
八、编码规范
- 开发规范 (自用)
- 谷歌现代C++开发规范
九、C++第三方库
9.1 QT
其他参考资料
常用网站
- 学习当代C++: hackingcpp
- C++去优化: cpp-insights
- 转汇编: godbolt
- C++测试: quick-bench
- C++文档: cppreference
tmp
[拓展/面试]new与malloc的10点区别
[常识/面试]C++中“引用”的底层实现原理详解