分享

Learn C++ – Skill up with our free tutorials

 觅书时代 2023-03-25 发布于河北

LearnCpp.com 是一个免费网站,致力于教您如何使用 C++ 进行编程。无论您以前是否有任何编程经验,本站点上的教程都将引导您完成编写、编译和调试 C++ 程序的所有步骤,所有步骤均带有大量示例。

成为专家不会在一夜之间发生,但只要有一点耐心,您就会到达那里。LearnCpp.com 将为您指明方向。

第0章

简介/入门

0.1

这些教程的介绍

0.2

编程语言简介

0.3

C/C++简介

0.4

C++开发简介

0.5

编译器、链接器和库简介

0.6

安装集成开发环境 (IDE)

0.7

编译你的第一个程序

0.8

几个常见的C++问题

0.9

配置编译器:构建配置

0.10

配置编译器:编译器扩展

0.11

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

0.12

配置编译器:选择语言标准

第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

第一章小结与小测验

第2章

C++ 基础:函数和文件

2.1

功能介绍

2.2

函数返回值(value-returning functions)

2.3

Void functions(无值返回函数)

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.1

语法和语义错误

3.2

调试过程

3.3

调试策略

3.4

基本调试策略

3.5

更多调试策略

3.6

使用集成调试器:步进

3.7

使用集成调试器:运行和断点

3.8

使用集成调试器:观察变量

3.9

使用集成调试器:调用堆栈

3.10

在问题成为问题之前发现问题

3.x

第三章小结与小测验

第 4 章

基本数据类型

4.1

基本数据类型介绍

4.2

空白

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.1

运算符优先级和结合性

5.2

算术运算符

5.3

模数和指数

5.4

递增/递减运算符和副作用

5.5

逗号和条件运算符

5.6

关系运算符和浮点数比较

5.7

逻辑运算符

5.x

第五章小结与测验

O章

位操作(可选章节)

O.1

通过 std::bitset 进行位标志和位操作

O.2

按位运算符

O.3

使用按位运算符和位掩码进行位操作

O.4

二进制和十进制之间的转换

第6章

范围、持续时间和联系

6.1

复合语句(块)

6.2

用户定义的命名空间和范围解析运算符

6.3

局部变量

6.4

全局变量介绍

6.5

变量阴影(名称隐藏)

6.6

内部联动

6.7

外部链接和变量前向声明

6.8

为什么(非常量)全局变量是邪恶的

6.9

跨多个文件共享全局常量(使用内联变量)

6.10

静态局部变量

6.11

范围、持续时间和联系摘要

6.12

使用声明和使用指令

6.13

内联函数

6.14

Constexpr 和 consteval 函数

6.15

未命名和内联命名空间

6.x

第6章小结与测验

第7章

控制流和错误处理

7.1

控制流程介绍

7.2

If 语句和块

7.3

常见的if语句问题

7.4

开关语句基础

7.5

切换失败和范围

7.6

转到语句

7.7

循环和 while 语句简介

7.8

执行 while 语句

7.9

对于语句

7.10

中断并继续

7.11

暂停(提前退出程序)

7.12

代码测试简介

7.13

代码覆盖率

7.14

C++ 中的常见语义错误

7.15

检测和处理错误

7.16

std::cin 和处理无效输入

7.17

断言和 static_assert

7.18

随机数生成简介

7.19

使用 Mersenne Twister 生成随机数

7.x

第7章小结与测验

第8章

类型转换和函数重载

8.1

Implicit type conversion (coercion)

8.2

Floating-point and integral promotion

8.3

Numeric conversions

8.4

Arithmetic conversions

8.5

Explicit type conversion (casting) and static_cast

8.6

Typedefs and type aliases

8.7

Type deduction for objects using the auto keyword

8.8

Type deduction for functions

8.9

Introduction to function overloading

8.10

Function overload differentiation

8.11

Function overload resolution and ambiguous matches

8.12

Default arguments

8.13

Function templates

8.14

Function template instantiation

8.15

Function templates with multiple template types

8.x

Chapter 8 summary and quiz

Chapter 9

Compound Types: References and Pointers

9.1

Introduction to compound data types

9.2

Value categories (lvalues and rvalues)

9.3

Lvalue references

9.4

Lvalue references to const

9.5

Pass by lvalue reference

9.6

Introduction to pointers

9.7

Null pointers

9.8

Pointers and const

9.9

Pass by address

9.10

Pass by address (part 2)

9.11

Return by reference and return by address

9.12

Type deduction with pointers, references, and const

9.x

Chapter 9 summary and quiz

Chapter 10

Compound Types: Enums and Structs

10.1

Introduction to program-defined (user-defined) types

10.2

Unscoped enumerations

10.3

Unscoped enumeration input and output

10.4

Scoped enumerations (enum classes)

10.5

Introduction to structs, members, and member selection

10.6

Struct aggregate initialization

10.7

Default member initialization

10.8

Struct passing and miscellany

10.9

Member selection with pointers and references

10.10

Class templates

10.11

Class template argument deduction (CTAD) and deduction guides

10.x

Chapter 10 summary and quiz

10.y

Using a language reference

Chapter 11

Arrays, Strings, and Dynamic Allocation

11.1

Arrays (Part I)

11.2

Arrays (Part II)

11.3

Arrays and loops

11.4

Sorting an array using selection sort

11.5

Multidimensional Arrays

11.6

C-style strings

11.7

std::string_view (part 2)

11.8

Pointers and arrays

11.9

Pointer arithmetic and array indexing

11.10

C-style string symbolic constants

11.11

Dynamic memory allocation with new and delete

11.12

Dynamically allocating arrays

11.13

For-each loops

11.14

Void pointers

11.15

Pointers to pointers and dynamic multidimensional arrays

11.16

An introduction to std::array

11.17

An introduction to std::vector

11.18

Introduction to iterators

11.19

Introduction to standard library algorithms

11.x

Chapter 11 comprehensive quiz

Chapter 12

Functions

12.1

Function Pointers

12.2

The stack and the heap

12.3

std::vector capacity and stack behavior

12.4

Recursion

12.5

Command line arguments

12.6

Ellipsis (and why to avoid them)

12.7

Introduction to lambdas (anonymous functions)

12.8

Lambda captures

12.x

Chapter 12 comprehensive quiz

Chapter 13

Basic Object-oriented Programming

13.1

Welcome to object-oriented programming

13.2

Classes and class members

13.3

Public vs private access specifiers

13.4

Access functions and encapsulation

13.5

Constructors

13.6

Constructor member initializer lists

13.7

Non-static member initialization

13.8

Overlapping and delegating constructors

13.9

Destructors

13.10

The hidden “this” pointer

13.11

Class code and header files

13.12

Const class objects and member functions

13.13

Static member variables

13.14

Static member functions

13.15

Friend functions and classes

13.16

Anonymous objects

13.17

Nested types in classes

13.18

Timing your code

13.x

Chapter 13 comprehensive quiz

Chapter 14

Operator overloading

14.1

Introduction to operator overloading

14.2

Overloading the arithmetic operators using friend functions

14.3

Overloading operators using normal functions

14.4

Overloading the I/O operators

14.5

Overloading operators using member functions

14.6

Overloading unary operators +, -, and !

14.7

Overloading the comparison operators

14.8

Overloading the increment and decrement operators

14.9

Overloading the subscript operator

14.10

Overloading the parenthesis operator

14.11

Overloading typecasts

14.12

The copy constructor

14.13

Copy initialization

14.14

Converting constructors, explicit, and delete

14.15

Overloading the assignment operator

14.16

Shallow vs. deep copying

14.17

Overloading operators and function templates

14.x

Chapter 14 comprehensive quiz

Chapter 15

Reserved for Future Reorganization

Chapter 16

An Introduction to Object Relationships

16.1

Object relationships

16.2

Composition

16.3

Aggregation

16.4

Association

16.5

Dependencies

16.6

Container classes

16.7

std::initializer_list

16.x

Chapter 16 comprehensive quiz

Chapter 17

Inheritance

17.1

Introduction to inheritance

17.2

Basic inheritance in C++

17.3

Order of construction of derived classes

17.4

Constructors and initialization of derived classes

17.5

Inheritance and access specifiers

17.6

Adding new functionality to a derived class

17.7

Calling inherited functions and overriding behavior

17.8

Hiding inherited functionality

17.9

Multiple inheritance

17.x

Chapter 17 comprehensive quiz

Chapter 18

Virtual Functions

18.1

Pointers and references to the base class of derived objects

18.2

Virtual functions and polymorphism

18.3

The override and final specifiers, and covariant return types

18.4

Virtual destructors, virtual assignment, and overriding virtualization

18.5

Early binding and late binding

18.6

The virtual table

18.7

Pure virtual functions, abstract base classes, and interface classes

18.8

Virtual base classes

18.9

Object slicing

18.10

Dynamic casting

18.11

Printing inherited classes using operator<<

18.x

Chapter 18 comprehensive quiz

Chapter 19

Templates and Classes

19.1

Template classes

19.2

Template non-type parameters

19.3

Function template specialization

19.4

Class template specialization

19.5

Partial template specialization

19.6

Partial template specialization for pointers

19.x

Chapter 19 comprehensive quiz

Chapter 20

Exceptions

20.1

The need for exceptions

20.2

Basic exception handling

20.3

Exceptions, functions, and stack unwinding

20.4

Uncaught exceptions and catch-all handlers

20.5

Exceptions, classes, and inheritance

20.6

Rethrowing exceptions

20.7

Function try blocks

20.8

Exception dangers and downsides

20.9

Exception specifications and noexcept

20.x

Chapter 20 comprehensive quiz

Chapter M

Move Semantics and Smart Pointers

M.1

Introduction to smart pointers and move semantics

M.2

R-value references

M.3

Move constructors and move assignment

M.4

std::move

M.5

std::move_if_noexcept

M.6

std::unique_ptr

M.7

std::shared_ptr

M.8

Circular dependency issues with std::shared_ptr, and std::weak_ptr

M.x

Chapter M comprehensive review

Chapter 21

The Standard Template Library

21.1

The Standard Library

21.2

STL containers overview

21.3

STL iterators overview

21.4

STL algorithms overview

Chapter 22

std::string

22.1

std::string and std::wstring

22.2

std::string construction and destruction

22.3

std::string length and capacity

22.4

std::string character access and conversion to C-style arrays

22.5

std::string assignment and swapping

22.6

std::string appending

22.7

std::string inserting

Chapter 23

Input and Output (I/O)

23.1

Input and output (I/O) streams

23.2

Input with istream

23.3

Output with ostream and ios

23.4

Stream classes for strings

23.5

Stream states and input validation

23.6

Basic file I/O

23.7

随机文件 I/O

附录 A

杂项科目

A.1

静态库和动态库

A2

在 Visual Studio 中使用库

A.3

将库与 Code::Blocks 一起使用

A.4

C++常见问题解答

附录 B

C++ 更新

B.1

C++11简介

B.2

C++14简介

B.3

C++17简介

B.4

C++20简介

附录 C

结束

C.1

结束?

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多