C++学习网 – 世界上最好的中文C++学习网站
发布时间:2026-08-19 | 浏览:5
欢迎来到「C++学习网」,本网站的教程目标是让你能够轻松的学习C++。网站提供 在线ide ,方便大家使用。
「C++学习网」是免费的学习网站。网站上的教程会手把手教你如何书写,编译以及调试C++程序,同时网站上有大量的程序示例。 成为编程高手并非一朝一夕之功。但只要你有耐心,「C++学习网」会带你上手C++编程。
与其他网站或者书籍不同,本站点假设你没有编程经验。学习过程中,会学到需要的一切知识。 不论是出于兴趣爱好,还是专业的开发者,这里是入门的绝佳地点。
在简介章节,会介绍C++的背景信息。比如,C++是怎么来的,程序是如何运行起来的,需要安装哪些软件来编程。 同时你也会编写出第一个程序。
后续章节会覆盖C++的不同部分。在第一章中,广泛粗浅的介绍许多C++的基础概念。 后续章节会拓展并深入的探讨这些概念,或引入其它的知识。
注:当前内容来源于 learncpp.com( https://www.learncpp.com/ )。大家如果英文较好,建议可以阅读原版,当然本课程更适合中国宝宝体质。另外,大家如果阅读过程中发现任何问题,在评论中留言即可。
有想交流的小伙伴欢迎加入QQ群: 954391896
本页内容学习完成后,可以按需学习以下内容
1.4 iostream:cout、cin和endl简介
1.5 未初始化的变量及未定义的行为
2.8 命名冲突和名称空间简介
3.5 使用集成调试器:单步执行
3.9 在问题变成问题前进行避免
4.2 对象大小和sizeof运算符
4.4 无符号整数,以及为什么要避免使用它们
4.5 固定宽度整数和size_t
4.8 布尔值(Boolean)
4.11 类型转换和static_cast简介
5.1 常量表达式、编译时常量和运行时常量
5.4 数字系统(十进制、二进制、十六进制和八进制)
5.7 Constexpr和consteval函数
5.8 std::string简介
5.9 std::string_view简介
5.10 std::string_view(第2部分)
6.3 自增/自减运算符和副作用
7.1 自定义命名空间和作用域解析操作符
7.4 变量名称遮挡(Variable shadowing)
7.6 外部链接和变量前向声明
7.7 为什么(非常量)全局变量是邪恶的
7.8 在多个文件中共享全局常量(使用内联变量)
7.10 作用域、存储期和链接摘要
7.11 using声明和using指令
7.12 未命名与内联的命名空间
8.3 Constexpr if语句
8.5 switch fallthrough机制与作用域
8.7 循环和while语句简介
8.10 break与continue
8.13 使用Mersenne Twister生成随机数
9.4 std::cin和处理无效输入
第十章 类型转换,类型别名与类型推导
10.3 窄化转换、列表初始化和constexpr初始化
10.5 显式类型转换和static_cast
10.6 typedef和类型别名
10.7 使用auto关键字的对象类型自动推导
11.1 被重载函数之间互相区分
11.3 函数的delete说明符
11.7 具有多个模板类型的函数模板
第十二章 复合类型:引用与指针
12.1 值类别(左值 lvalue 和右值 rvalue)
12.3 const的左值引用
12.4 通过左值引用传递函数参数
12.5 通过常量左值引用传递函数参数
12.9 通过指针传递函数参数
12.10 通过指针传递函数参数(第2部分)
12.11 引用或指针作为函数返回值
12.13 指针、引用和常量的类型自动推导
第十三章 复合类型:枚举与结构体
13.2 非限定作用域枚举的输入与输出
13.3 限定作用域枚举(枚举类)
13.6 成员变量的默认初始化
13.7 结构体作为函数的输入与输出
13.9 结构体指针和引用的成员选择操作
13.11 类模板参数推导(CTAD)
13.14 如何使用c++语言手册
14.3 Const类对象和Const成员函数
14.4 公共和私有成员以及访问说明符
14.6 成员函数返回对数据成员的引用
14.7 数据隐藏(封装)的好处
14.9 构造函数成员初始化列表
14.10 默认构造函数和默认参数
14.14 类初始化和拷贝省略
14.15 转换构造函数和explicit关键字
15.0 隐藏的“this”指针和成员函数调用
15.2 嵌套类型(成员类型)
15.4 具有成员函数的类模板
15.8 友元类和友元成员函数
第十六章 动态数组:std::vector
16.1 std::vector和列表构造函数简介
16.2 vector与无符号长度和下标问题
16.3 传递std::vector
16.4 返回std::vector,移动语义简介
16.6 数组、循环和有符号下标
16.7 基于范围的for循环(range for / for each)
16.8 使用枚举值来作为数组索引
16.9 std::vector大小调整和容量
16.10 std::vector和栈行为
16.11 std::vector<bool>
第十七章 固定长度数组:std::array与c样式数组
17.0 std::array简介
17.1 std::array长度和索引
17.2 std::array作为函数参数或返回值
17.3 std::array与类类型元素
17.4 通过std::reference_wrapper创建引用的数组
17.5 std::array和枚举
17.12 多维std::array
19.0 使用new和delete进行动态分配内存
19.3 指向指针和动态多维数组的指针
20.4 省略号与可变参数(以及为什么要避免它们)
20.5 lambda(匿名函数)简介
21.1 使用友元函数重载算术运算符
21.2 使用普通函数重载运算符
21.4 使用成员函数重载运算符
21.5 重载一元运算符+、-和!
21.7 重载递增和递减运算符
21.13 重载运算符和函数模板
第二十二章 移动语义与智能指针
22.0 智能指针和移动语义简介
22.2 移动构造函数和移动赋值函数
22.4 std::unique_ptr
22.5 std::shared_ptr
22.6 std::shared_ptr的循环依赖性问题和std::weak_ptr
23.6 std::initializer_list
24.3 派生类的构造函数与初始化
24.6 调用继承的函数与重写行为
25.0 指向派生对象的基类指针和引用
25.2 override和final说明符
25.3 虚析构函数、虚赋值函数以及虚函数重写
25.6 纯虚函数、抽象基类和接口类
25.8 对象切片(Object slicing)
25.9 dynamic_cast
25.10 使用运算符<<打印继承的类
27.2 异常、函数和堆栈展开
27.3 未捕获的异常和捕获所有异常
27.8 异常规格和noexcept
27.9 std::move_if_noexcept
第二十八章 输入输出(I/O)
28.0 输入和输出(I/O)流
28.1 使用istream处理输入
28.2 使用ostream和ios输出
28.3 针对字符串的stream类