LearnCpp 中文版
成员变量
Initializing search
hanxiaomax/Learncpp_CN
总目录
课程内容
翻译约定
索引
关于本站
LearnCpp 中文版
hanxiaomax/Learncpp_CN
总目录
课程内容
课程内容
1. C++ 基础
1. C++ 基础
1.1 - 程序结构和语句
1.2 - 注释
1.3 - 对象和变量
1.4 - 变量赋值和初始化
1.5 - iostream 简介:cout,cin 和 endl
1.6 - 未初始化变量和未定义行为
1.7 - 关键字和标识符
1.8 - 空白符和基本排版
1.9 - 字面量和操作符
1.10 - 表达式简介
1.11 - 开发你的第一个程序
1.x - 小结与测试 - C++基础
2. C++ 基础-函数和文件
2. C++ 基础-函数和文件
2.1 - 函数简介
2.2 - 函数返回值
2.3 - void 函数
2.4 - 函数形参和实参
2.5 - 局部作用域
2.6 - 为什么函数有用,如何高效使用函数
2.7 - 前向声明和定义
2.8 - 多文件程序
2.9 - 命名冲突和命名空间
2.10 - 预处理器简介
2.11 - 头文件
2.12 - 头文件防卫式声明
2.13 - 如何设计第一个程序
2.x - 小结与测试 - 函数与文件
3. 调试 C++ 程序
3. 调试 C++ 程序
3.1 - 语法和语义错误
3.2 - 代码调试步骤
3.3 - 代码调试策略
3.4 — 基本代码调试技术
3.5 - 更多代码调试技术
3.6 - 使用集成调试器之单步调试
3.7 - 使用集成调试器之运行和断点
3.8 - 使用集成调试器之监控变量
3.9 - 使用集成调试器之调用栈
3.10 - 在问题发生前发现问题
3.x - 小结与测试 - 代码调试
4. 基础数据类型
4. 基础数据类型
4.1 - 基础数据类型简介
4.2 - Void
4.3 - 对象的大小和 sizeof 操作符
4.4 - 有符号整型
4.5 - 无符号整型以及为什么要避免使用它
4.6 - 固定宽度整型和 size_t
4.7 - 科学计数法
4.8 - 浮点数
4.9 - 布尔值
4.10 - if 语句简介
4.11 - 字符
4.12 - 类型转换和 static_cast
4.13 - const 变量和符号常量
4.14 - 编译时常量、常量表达式和 constexpr
4.15 - 字面量
4.16 - 数值系统(十进制、二进制、十六进制和八进制)
4.17 - std::string 简介
4.18 - std::string_view 简介
4.x - 小结与测试 - 基本数据类型
5. 运算符
5. 运算符
5.1 - 运算符优先级和结合律
5.2 - 数学运算符
5.3 - 求模和指数运算
5.4 - 自增自减运算符及其副作用
5.5 - 逗号和条件运算符
5.6 - 关系运算符和浮点数比较
5.7 - 逻辑运算符
5.x - 小结与测试 - 运算符
6. 作用域,生命周期和链接
6. 作用域,生命周期和链接
6.1 - 复合语句(语句块)
6.2 - 用户定义命名空间和作用域解析运算符
6.3 - 局部变量
6.4 - 全局变量
6.5 - 变量遮蔽
6.6 - 内部链接
6.7 - 外部链接和变量前向声明
6.8 - 为什么非 const 全局变量是魔鬼
6.9 - 使用 inline 变量共享全局常量
6.10 - 静态局部变量
6.11 - 作用域和链接小结
6.12 - using 声明和 using 指令
6.13 - 内联函数
6.14 - Constexpr 和 consteval 函数
6.15 - 未命名和内联命名空间
6.x - 小结与测试 - 作用域、持续时间和链接
7. 控制流和错误处理
7. 控制流和错误处理
7.1 - 控制流
7.2 - if 语句和语句块
7.3 - 常见的 if 语句错误
7.4 - switch 语句基础
7.5 - switch fallthrough属性和作用域
7.6 - goto 语句
7.7 - 循环和 while 语句
7.8 - do-while 语句
7.9 - for 语句
7 10 Break and continue
7.11 - 挂起(提前结束程序)
7.12 - 代码测试
7.13 - 代码覆盖率
7.14 - C++ 中常见的语义错误
7.15 - 发现错误和处理错误
7.16 - std::in 和输入错误处理
7.17 - 断言和 static_assert
7.18 - 随机数生成器简介
7.19 - 使用 Mersenne Twister 生成随机数
7.x - 小结与测试 - 控制流和错误处理
8. 类型转换和函数重载
8. 类型转换和函数重载
8.1 - 隐式类型转换
8.2 - 浮点数和整型提升
8.3 - 数值转换
8.4 - 算术转换
8.5 - 显式类型转换和static_cast
8.6 - typedef 和类型别名
8.7 - 使用 auto 关键字进行类型推断
8.8 - 函数的类型推断
8.9 - 函数重载
8.10 - 重载函数的区分
8.11 - 函数重载解析和不明确匹配
8.12 - 默认参数
8.13 - 函数模板
8.14 - 函数模板的实例化
8.15 - 具有多种类型的函数模板
8.x - 小结与测试 - 类型转换和函数重载
9. 复合类型-引用和指针
9. 复合类型-引用和指针
9.1 - 复合数据类型
9.2 - 值的分类(左值和右值)
9.3 - 左值引用
9.4 - const类型的左值引用
9.5 - 传递左值引用
9.6 - 指针简介
9.7 - 空指针
9.8 - 指针和const
9.9 - 按地址传递
9.10 - 按地址传递 Part2
9.11 - 按引用返回和按地址返回
9.12 - 指针、引用和const的类型推断
9.x - 小结与测试 - 引用和指针
10. 复合类型-枚举和结构体
10. 复合类型-枚举和结构体
10.1 - 程序定义类型简介
10.2 - 无作用域枚举类型
10.3 - 限定作用域枚举类型的输入输出
10.4 - 限定作用域枚举(枚举类)
10.5 - 结构体、成员和成员选择
10.6 - 结构体的聚合初始化
10.7 - 默认成员初始化
10.8 - 结构体传递及其他
10.9 - 基于指针和引用的成员选择
10.10 - 类模板
10.11 - 类模板参数推断CTAD
10.x - 小结与测试 - 枚举和结构体
10.y - 学会使用C++参考手册
11. 数组,字符串和动态内存分配
11. 数组,字符串和动态内存分配
11.1 - 数组(第一部分)
11.2 - 数组(第二部分)
11.3 - 数组和循环
11.4 - 数组排序之选择排序
11.5 - 多维数组
11.6 - C 语言风格字符串
11.7 - std::string_view(第二部分)
11.8 - 指针和数组
11.9 - 指针运算和数组索引
11.10 - C 风格字符串符号常量
11.11 - 使用 new 和 delete 进行动态内存分配
11.12 - 动态分配数组
11.13 - for-each 循环
11.14 — void 指针
11.15 — 指向指针的指针和多维数组
11.16 — 固定数组 std::array 简介
11.17 — 动态数组 std::vector 简介
11.18 — 迭代器简介
11.19 — 标准库算法简介
11.x - 小结与测试 - 数组、字符串和动态分配
12. 函数
12. 函数
12.1 - 函数指针
12.2 - 栈和堆
12.3 - std::vector的容量和类栈行为
12.4 - 递归
12.5 - 命令行参数
12.6 - 省略号以及为什么要避免使用它
12.7 - lambda表达式简介(匿名函数)
12.8 - lambda 闭包
12.x - 小结与测试 - 函数
13. 面向对象编程基础
13. 面向对象编程基础
13.1 - 欢迎来到面向对象的世界
13.2 - 类和类成员
13.3 - 访问修饰符 public 和 private
13.4 - 成员访问函数与封装
13.5 - 构造函数
13.6 - 构造函数成员初始化值列表
13.7 - 非静态成员初始化
13.8 - 重叠和委托构造函数
13.9 - 析构函数
13.10 - 隐藏的this指针
13.11 - 类代码和头文件
13.12 - const 对象和成员函数
13.13 - 静态成员变量
13.14 - 静态成员函数
13.15 - 友元函数和友元类
13.16 - 匿名对象
13.17 - 类中的嵌套类型
13.18 - 对程序进行计时
13.x - 小结与测试 - 面向对象基础
14. 操作符重载
14. 操作符重载
14.1 - 运算符重载简介
14.2 - 使用友元重载算数运算符
14.3 - 使用普通函数重载运算符
14.4 - 重载输入输出运算符
14.5 - 使用成员函数重载运算符
14.6 - 重载一元运算符+,- 和 !
14.7 - 重载比较运算符
14.8 - 重载递增递减运算符
14.9 - 重载下标运算符
14.10 - 重载括号运算符
14.11 - 重载类型转换操作符
14.12 - 拷贝构造函数
14.13 - 拷贝初始化
14.14 - 转换构造函数与explicit和delete关键字
14.15 - 重载赋值运算符
14.16 - 浅拷贝和深拷贝
14.17 - 重载运算符和函数模板
14.x - 小结与测试 - 运算符重载
16. 对象关系简介
16. 对象关系简介
16.1 - 对象关系
16.2 - 组合关系
16.3 - 聚合关系
16.4 - 关联关系
16.5 - 依赖关系
16.6 - 容器类
16.7 - std::initializer_list
16.x - 小结与测试 - 对象关系
17. 继承
17. 继承
17.1 - 继承简介
17.2 - C++继承基础
17.3 - 派生类的构造顺序
17.4 - 派生类的构造和初始化
17.5 - 继承和访问说明符
17.6 - 为派生类添加新功能
17.7 - 调用继承函数和重写
17.8 - 隐藏继承的函数
17.9 - 多重继承
17.x - 小结与测试 - 继承
18. 虚函数
18. 虚函数
18.1 - 基类的指针和引用
18.2 - 虚函数和多态
18.3 - override、final标识符以及协变返回类型
18.4 - 虚构造函数、虚赋值和重载虚拟化
18.5 - 早期绑定和后期绑定
18.6 - 虚函数表
18.7 - 纯虚函数,抽象基类和接口类
18.8 - 虚基类
18.9 - 对象切片
18.10 - 动态类型转换
18.11 - 使用 << 运算符打印继承类
18.x - 小结与测试 - 虚函数
19. 模板和类
19. 模板和类
19.x - 小结与测试 - 模板和类
20. 异常
20. 异常
20.x - 小结与测试 - 异常
M. move和智能指针
M. move和智能指针
M.1 - 智能指针和移动语义简介
M.2 - 右值引用
M.3 - 移动构造函数和移动赋值
M.4 - std::move
M.5 - std::move_if_noexcept
M.6 — std::unique_ptr
M.7 — std::shared_ptr
M.8 - 智能指针带来的循环依赖问题
M.x - 小结与测试 - 移动和智能指针
21. STL
21. STL
21.1 - 标准库
21.2 - STL容器
21.3 - STL迭代器
21.4 - STL算法
22. std字符串
22. std字符串
22.1 - std::string 和 std::wstring
22.2 - std-string 的构造和析构
22.3 - std-string 的长度和容量
22.4 - std-string 字符访问和C字符数组转换
22.5 - std-string 赋值和交换
22.6 - std-string 追加
22.7 - std-string 插入
23. 输入输出
23. 输入输出
23.1 - 输入输出流
23.2 - 使用istream处理输入
23.3 - 使用ostream和ios处理输出
23.4 - 用于字符串的 stream 类
23.5 - 流状态和输入验证
23.6 - 基本文件输入输出
23.7 - 随机文件输入输出
A. 其他话题
A. 其他话题
A 1 static and dynamic libraries
A.2 - 在visual studio中使用库
A.3 - 在Code Blocks中使用库
A.4 — C++ FAQ
B. C++标准更新
B. C++标准更新
B.1 - C++11
B.2 - C++14
B.3 - C++17
B.4 - C++20
O1. 位运算
O1. 位运算
O.1 - bit标记和通过std::bitset操作bit
O.2 - 位运算符
O.3 - 使用位运算符和掩码操作位
O.4 - 二进制和十进制转换
翻译约定
索引
关于本站
词汇表
member-variable
成员变量
Back to top