跳转至

基础

推荐学习路径

  • (构建) 构建系统
  • (类型) 数据类型
  • (类型) const类型
  • (类型) sizeof运算符
  • (类型) 左值右值: 重点理解const className& other可以同时接受左值和右值
  • (指针) 地址运算符
  • (指针) 使用引用传参
  • (函数) 作用域
  • (函数) 循环
  • (函数) 函数不能在其他函数内部
  • (数组) 数组offset
  • (数组) 向函数传递数组
  • (指针) 内存分配
  • (指针) 函数指针
  • (指针) 智能指针: 重点理解weak_ptr
  • (对象) 类的介绍
  • (对象) 权限修饰符
  • (对象) 构造函数和析构函数
  • (对象) 拷贝构造函数
  • (对象) 拷贝赋值操作符
  • (函数) 操作符重载
  • (函数) 返回值优化: 特别注意RVO触发的条件
  • (对象) 成员变量初始化列表, 构造函数初始化列表的一种
  • (对象) struct的使用
  • (对象) RAII
  • (对象) 移动构造函数和移动赋值操作符: 重点是对于将亡值的理解, 我们在传递完参数之后就用不到他们了
  • (对象) 规则 5/zero/3: 教你怎么正确的写出一个好的C++类
  • (对象) 友元
  • (对象) 列表初始化和explicit关键字: 这两个要一起看, 重点理解为啥explicit和列表初始化要一起用
  • (对象) 继承的基本概念
  • (对象) 继承的访问控制
  • (对象) 继承的构造函数调用: 搞懂调用的顺序, 以及基类构造函数初始化列表, 构造函数初始化列表的一种
  • (对象) 为啥要用多态
  • (对象) virtualoverride的使用
  • (对象) 基类的析构函数套virtual
  • (对象) vtable
  • (对象) 抽象类, 纯虚函数
  • (对象) 多重继承, 菱形继承
  • (类型) const的用法
  • (对象) 成员函数修饰符
  • (对象) 组合和聚合
  • (对象) 虚拟继承
  • (对象) 零初始化
  • (对象) 类内初始化
  • (对象) 委托构造函数初始化列表, 构造函数初始化列表的一种
  • (对象) 类的空间分布
  • (对象) pIMPL
  • (对象) this关键字
  • (对象) static关键字, 包括静态成员变量, 静态成员函数
  • (模版) 为什么要用模版
  • (模版) 函数模版, 使用templateauto
  • (模版) 传入多个类型和非对象参数
  • (模版) 部分模板化
  • (模版) 可变参数模版
  • (类型) decltype的用法
  • (模版) 模板类
  • (模版) 带有静态成员变量的模板类
  • (模版) CTAD
  • (模版) 默认参数
  • (函数) 工厂函数
  • (指针) 自定义Deleter
  • (类型) union的用法
  • (类型) std::variant的用法
  • (类型) constexpr的用法
  • (调试) assert的用法
  • (类型) auto的用法
  • (类型) 类型转换, 包括隐式类型转换, 显式类型转换
  • (对象) 嵌套类
  • (函数) 函数对象(可调用对象)
  • (函数) Lambda表达式
  • (对象) mutable的用法
  • (函数) Lambda表达式捕获变量
  • (函数) 处理命令行参数, std::get_env的用法
  • (函数) using的用法, 特别关注using::Base::Baseusing::Base::func
  • (类型) #define的用法
  • (类型) __file____line__的用法, 还有std::source_location的用法
  • (函数) 默认参数
  • (函数) 内联函数
  • (类型) 内联变量
  • (类型) size_t的用法
  • (容器) std::string的用法
  • (容器) std::string_view的用法
  • (容器) std::array的用法, 简单了解一下迭代器
  • (容器) std::span的用法
  • (容器) std::vector的用法, 特别注意erase的用法
  • (容器) std::list的用法
  • (容器) std::forward_list的用法
  • (容器) std::deque的用法
  • (容器) std::set的用法
  • (容器) std::unordered_set的用法
  • (容器) std::multiset的用法
  • (容器) std::unordered_multiset的用法
  • (容器) std::pair的用法
  • (容器) std::map的用法
  • (容器) std::unordered_map的用法
  • (容器) std::unordered_multimap的用法
  • (容器) std::stack的用法
  • (容器) std::queue的用法
  • (容器) std::priority_queue的用法
  • (容器) 迭代器, 包括种类, 只读迭代器, 反向迭代器, 迭代器失效

引用

本笔记的所有内容是Mike Shh的C++课程的笔记.