LearnCpp中文版

LearnCpp.com是一个致力于教你如何用C++编程。这里是LearnCpp教程的中文翻译。由于翻译可能无法做到精确表达原文意思,我们推荐您在对问题有疑惑的时候去阅读一下英文版的教程。如果您对翻译有更好的建议,可以在评论区提出,如果是对教程的内容有问题,请先查看原文,如果不是翻译错误的话,请直接在原网站评论区向作者(ALEX )反馈。我会根据个人时间不定期更新和校对。

无论您是否有任何先前的编程经验,本网站上的教程将指导您完成编写,编译和调试C++程序的所有步骤,所有这些都包含大量示例。

成为专家不是一夜之间的事情。但只要多一点耐心,你一定会成功的!本网站将为您指明方向。

第0章 简介/入门

0.1 教程简介

0.2 编程语言介绍

0.3 介绍C和C++语言

0.4 介绍C++开发

0.5 介绍编译器,连接器和库

0.6 集成开发环境(IDE)安装

0.7 编译你的第一个程序

0.8 C++常见问题

0.9 编译器配置:构建配置(Build configurations)

0.10 编译器配置:编译器拓展

0.11 编译器配置:警告和错误等级

第1章 C++基础知识

1.1 语句和程序结构

1.2 注释

1.3 初识变量,初始化和赋值

1.3A 初识cout,cin和endl

1.4 初识函数和返回值

1.4A 初识函数形参和实参

1.4B 为什么函数有用,以及如何有效地使用它们

1.4C 关键字和命名标识符

1.4D 初识局部作用域

1.5 初识操作符

1.6 空格和格式化基础

1.7 向前声明和定义

1.8 包含多个文件的程序

1.8A 命名冲突和std命名空间

1.9 头文件

1.10 初识预处理器

1.10A 头文件保护(Header Guard)

1.10B 如何设计你的第一个程序

1.11 调试程序(步进和断点)

1.11a 调试程序(观察变量和调用堆栈)

1.12 第1章综合测验

第2章 变量和基本数据类型

2.1 基本变量定义,初始化和赋值

2.2 void

2.3 可变大小和sizeof运算符

2.4 整型

2.4A 固定宽度整数

2.5 浮点数字

2.6 布尔值和if语句简介

2.7 字符

2.8 字面值

2.9 Const,constexpr和符号常量

2.10 第2章综合测验

第3章 操作符

3.1 运算符优先级和关联性

3.2 算术运算符

3.3 递增/递减运算符以及它的副作用

3.4 sizeof,逗号和条件运算符

3.5 关系运算符(比较)

3.6 逻辑运算符

3.7 在二进制和十进制之间转换

3.8 按位运算符

3.8A 位标志和位掩码

3.X 第3章综合测验

第4章 可变范围和更多类型

4.1 块语句(复合语句)

4.1A 局部变量,作用域和生存周期

4.2 全局变量和链接(Linkage)

4.2A 为什么全局变量不好

4.3 静态生存周期变量

4.3A 作用域,生存周期和链接(Linkage)摘要

4.3B 命名空间

4.3c using语句

4.4 隐式类型转换

4.4A 显式类型转换

4.4B std::string简介

4.5 枚举类型

4.5A 枚举类

4.6 Typedef和类型别名

4.7 结构体

4.8 auto关键字

4.x版 第4章综合测验

第5章 控制流

5.1 流程控制介绍

5.2 if语句

5.3 switch语句

5.4 goto语句

5.5 while语句

5.6 do whille语句

5.7 for语句

5.8 break和continue

5.9 随机数生成

5.10 std::cin,提取和处理无效的文本输入

5.11 代码测试简介

5.x 第五章综合测验

第6章 数组,字符串,指针和引用

6.1 数组(第一部分)

6.2 数组(第二部分)

6.3 数组和循环

6.4 使用选择排序对数组进行排序

6.5 多维数组

6.6 C风格的字符串

6.7 指针简介

6.7A 空指针

6.8 指针和数组

6.8A 指针算术和数组索引

6.8b C风格的字符串符号常量

6.9 使用new和delete进行动态内存分配

6.9a 动态分配数组

6.10 指针和常量

6.11 引用变量

6.11A 引用和常量

6.12 使用指针和引用选择成员

6.12a foreach循环

6.13 void指针

6.14 指针的指针和动态多维数组的指针

6.15 std::array简介

6.16 std::vector简介

6.x 第6章综合测验

第7章 函数

7.1 函数行参和实参

7.2 按值传递参数

7.3 通过引用传递参数

7.4 通过地址传递参数

7.4A 按值,引用和地址返回值

7.5 内联函数

7.6 函数重载

7.7 默认参数

7.8 函数指针

7.9 栈和堆

7.10 std::vector容量和堆栈行为

7.11 递归

7.12 处理errors,cerr和exit

7.12a 断言和static_assert

7.13 命令行参数

7.14 省略号(以及为什么要避免它们)

7.x 第7章综合测验

第8章 基本的面向对象编程

8.1 欢迎来到面向对象编程

8.2 类和类成员

8.3 公共与私有访问修饰符

8.4 访问函数与封装

8.5 构造函数

8.5A 构造函数成员初始化列表

8.5b 非静态成员初始化

8.6 重叠构造函数和委托构造函数

8.7 析构函数

8.8 隐藏的“this”指针

8.9 类代码和头文件

8.10 Const类对象和成员函数

8.11 静态成员变量

8.12 静态成员函数

8.13 友元函数和类

8.14 匿名对象

8.15 类中的嵌套类型

8.16 代码计时

8.x 第8章综合测验

第9章 运算符重载

9.1 运算符重载简介

9.2 使用友元函数重载算术运算符

9.2A 使用常规函数重载运算符

9.3 重载I/O运算符

9.4 使用成员函数重载运算符

9.5 重载一元运算符+, - 和!

9.6 重载比较运算符

9.7 重载递增和递减运算符

9.8 重载下标运算符

9.9 重载括号运算符

9.10 重载类型转换

9.11 复制构造函数

9.12 复制初始化

9.13 转换构造函数,显式和删除

9.14 重载赋值运算符

9.15 浅复制与深复制

9.x 第9章综合测验

第10章 对象关系的介绍

10.1 对象关系

10.2 组合

10.3 聚合

10.4 关联

10.5 依赖

10.6 容器类

10.7 std::initializer_list

10.x 第10章综合测验

第11章 继承

11.1 继承简介

11.2 C++中的继承基础

11.3 派生类的构造顺序

11.4 派生类的构造函数和初始化

11.5 继承和访问修饰符

11.6 向派生类添加新函数

11.6A 调用继承的函数和覆盖行为

11.6b 隐藏继承的函数

11.7 多重继承

11.x 第11章综合测验

第12章 虚函数

12.1 派生对象的基类的指针和引用

12.2 虚函数和多态

12.2A override和final操作符,协变返回类型

12.3 Virtual destructors, virtual assignment, and overriding virtualization

12.4 Early binding and late binding

12.5 The virtual table

12.6 纯虚函数,抽象基类和接口类

12.7 虚拟基类

12.8 对象切片

12.9 动态转换

12.10 使用<<输出继承的类

12.x 第12章综合测验

第13章 模板

13.1 函数模板

13.2 函数模板实例

13.3 模板类

13.4 模板非类型参数

13.5 函数模板特殊化

13.6 类模板特殊化

13.7 部分模板特殊化

13.8 指针的部分模板特化

13.x 第13章综合测验

第14章 异常

14.1 异常介绍

14.2 基本异常处理

14.3 异常,函数和堆栈展开

14.4 未捕获的异常,catch-all处理程序和异常修饰符

14.5 异常,类和继承

14.6 重新抛出异常

14.7 函数try blocks

14.8 例外的危险性和缺点

14.x 第14章综合测验

第15章 移动语义和智能指针

15.1 介绍智能指针和移动语义

15.2 右值引用

15.3 移动构造函数并移动赋值

15.4 std::move

15.5 std::unique_ptr

15.6 std::shared_ptr

15.7 std::shared_ptr和std::weak_ptr的循环依赖问题

15.x第15章综合回顾

第16章 标准模板库

16.1 标准库

16.2 STL容器概述

16.3 STL迭代器概述

16.4 STL算法概述

第17章 std::string

17.1 std::string和std::wstring

17.2 std::string构造和销毁

17.3 std::string长度和容量

17.4 std::string字符访问和转换为C风格的数组

17.5 std::string赋值和交换

17.6 std::string追加

17.7 std::string插入

第18章 输入输出(I/O)

18.1 输入和输出(I/O)流

18.2 用istream输入

18.3 用ostream和ios输出

18.4 字符串的stream类

18.5 流状态和输入验证

18.6 基本文件I/O.

18.7 随机文件I/O.