C# · 12月 20, 2021

开始C++17

目录

关于作者

关于技术评论

简介

第1章 基本思想

现代C++

标准库

C++编程概念

源文件与头文件

注释与空格

预编译目录和标准库头文件

函数

语句

数据输入和输出

返回语句

名字空间

名字和关键字

类和对象

模板

代码显示和编程风格

创建与执行

程式和面向对象编程

数字表示

2进制数字

16进制数字

非负2进制数字

10进制数字

BI-Endian和Little-Endian体系

浮点数字

字符表示

ascii编码

UCS和Unicode

C++源字符

避免序列

总结

第2章 介绍数据的函数类型

变量,数据和数据类型

定义整形变量

初始化为0

定义复杂类型变量

整形字面量

10进制整形字面量

16进制字面量

8进制字面量

2进制字面量

整形计算

混合算术表达式

赋值操作

op=操作符

sizeof操作符

增加和减小整形

可移植增加和减小操作

定义浮点变量

浮点字面量

浮点计算

隐患

无浮点结果

数学函数

样式流输出

混合表达式和类型转换

显示类型转换

旧式类型转换

查找限制

查找其他函数类型属性

字符变量运用

Unicode运用

auto关键字

总结

第3章 基本数据类型运用

操作优先级与关联

位操作

按位左移

按位右移

枚举数据类型

类聚类型对

变量的生命周期

全局变量

总结

第4章 条件

比较数据值

应用比较操作

比较浮点

if语句

完整if语句

字符验证和转换

if-else语句

完整if-else语句

理解完整性

逻辑操作

逻辑与

逻辑或

逻辑非

组合逻辑

整形操作中的逻辑操作

逻辑操作vs按位操作

条件操作

switch操作

fallthrough

语句块和变量范围

初始化语句

总结

第5章 数组与循环

数组

使用数组

理解循环

for循环

避免魔法数字

使用固定初始化数组

确定数组的大小

使用浮点数控制循环

复杂循环控制表达式

comma操作

基于范围循环

while循环

do-while循环

Nested循环

体哦爱国循环迭代

中断循环

内部定义循环

使用无符号整形控制循环

字符的数组

多元(multidimensional)数组

初始化多元数组

多元字符数组

运行时分配数组

使用数组的可替换性

使用array容器

使用std::vector容器

总结

第6章 指针和引用

指针是什么

操作地址

间接操作

为什么使用指针

指向char类型的指针

指针数组

常量指针和指向常量的指针

指针和数组

指针arithmetic

使用指针标注数组名

动态内存分配

栈和释放空间

使用new和delete操作

动态分配数组

使用指针进行成员选择

动态内存分配的hazard

dangjing指针和多元分配

分配不匹配

捏村泄露

释放空间标志

动态内粗分配的黄金准则

原始指针和智能指针

使用unique_ptr指针

使用shared_ptr指针

理解引用

定义引用

在范围循环中使用使用引用变量

总结

第7章 运用string

更好的string类

定义string对象

操作string对象

在string中的字符权限

子string的字符属性

比较字符串

搜索string

修改string

std::string vs std::vector

变换sting为数字

string流

国际化字符的string

wchar_t字符的string

包含Unicode string 对象

原始string字面量

总结

第8章 定义函数

程序段

成员函数

函数字符

定义函数

函数体

返回值

函数声明

函数的参数传递

按值传递

按引用传递

string视图:常量字符串引用

默认参数值

多元默认参数值

main()的参数

函数的返回值

返回指针

返回引用

返回与输出参数

返回类型推断

运用可选值

std::optional

静态变量

内联函数

函数重载

重载和指针参数

重载与隐月宫参数

重载与常量参数

重载与默值

Recursion

基本示例

recursion 算法

总结

第9章 函数模板

函数模板

创建函数模板实例化

模板类型参数

显示模板参数

函数模板特例

函数模板与重载

多元参数函数模板

模板返回值推断

decltype() 与返回类型判断