现代C++编程:从入门到实践
新华书店全新正版,极速发货,假一罚十,可开电子发票,请放心购买。
¥
114.43
5.8折
¥
199
全新
库存24件
作者[美] 乔什·洛斯皮诺索(Josh Lospinoso)
出版社机械工业出版社
ISBN9787111734352
出版时间2023-09
装帧平装
开本16开
定价199元
货号1203085568
上书时间2024-10-23
商品详情
- 品相描述:全新
- 商品描述
-
目录
目 录 Contents <br />序<br />前言<br />致C语言程序员<br />第一部分 C++语言核心<br />第1章 启动和运行2<br />1.1 C++程序的基本结构2<br />1.1.1 创建第一个C++源文件3<br />1.1.2 main函数:C++程序的入口点3<br />1.1.3 程序库:引入外部代码3<br />1.2 编译器工具链4<br />1.2.1 设置开发环境4<br />1.2.2 Windows 10以及后续版本:<br /> Visual Studio5<br />1.2.3 macOS: Xcode6<br />1.2.4 Linux和GCC7<br />1.2.5 文本编辑器10<br />1.3 开始认识C++11<br />1.3.1 C++类型系统11<br />1.3.2 声明变量11<br />1.3.3 初始化变量的状态11<br />1.3.4 条件语句12<br />1.3.5 函数14<br />1.3.6 printf格式指定符15<br />1.3.7 重新审视step_function16<br />1.3.8 注释 17<br />1.4 调试18<br />1.4.1 Visual Studio18<br />1.4.2 Xcode19<br />1.4.3 用GDB和LLDB对GCC和<br /> Clang进行调试20<br />1.5 总结23<br />练习23<br />拓展阅读24<br />第2章 类型25<br />2.1 基本类型25<br />2.1.1 整数类型25<br />2.1.2 浮点类型28<br />2.1.3 字符类型30<br />2.1.4 布尔类型31<br />2.1.5 std::byte类型33<br />2.1.6 size_t类型34<br />2.1.7 void35<br />2.2 数组35<br />2.2.1 数组初始化35<br />2.2.2 访问数组元素35<br />2.2.3 for循环简介36<br />2.2.4 C风格字符串38<br />2.3 用户自定义类型41<br />2.3.1 枚举类型41<br />2.3.2 普通数据类44<br />2.3.3 联合体45<br />2.4 全功能的C++类46<br />2.4.1 方法47<br />2.4.2 访问控制47<br />2.4.3 构造函数49<br />2.4.4 初始化51<br />2.4.5 析构函数55<br />2.5 总结56<br />练习56<br />拓展阅读56<br />第3章 引用类型57<br />3.1 指针57<br />3.1.1 寻址变量58<br />3.1.2 指针解引用59<br />3.1.3 成员指针运算符60<br />3.1.4 指针和数组61<br />3.1.5 指针很危险63<br />3.1.6 void指针和std::byte指针65<br />3.1.7 nullptr和布尔表达式65<br />3.2 引用65<br />3.3 指针和引用的使用66<br />3.3.1 前向链表:经典的基于指针的<br /> 数据结构66<br />3.3.2 使用引用68<br />3.3.3 this指针69<br />3.3.4 const正确性69<br />3.3.5 const成员变量71<br />3.3.6 成员初始化列表71<br />3.4 auto类型推断72<br />3.4.1 用auto进行初始化73<br />3.4.2 auto和引用类型73<br />3.4.3 auto和代码重构73<br />3.5 总结74<br />练习74<br />拓展阅读75<br />第4章 对象生命周期76<br />4.1 对象的存储期76<br />4.1.1 分配、释放和生命周期76<br />4.1.2 内存管理77<br />4.1.3 自动存储期77<br />4.1.4 静态存储期77<br />4.1.5 线程局部存储期80<br />4.1.6 动态存储期81<br />4.2 追踪对象的生命周期83<br />4.3 异常84<br />4.3.1 throw关键字84<br />4.3.2 使用try-catch代码块85<br />4.3.3 stdlib异常类86<br />4.3.4 异常处理88<br />4.3.5 用户定义的异常89<br />4.3.6 noexcept关键字90<br />4.3.7 调用栈和异常90<br />4.4 SimpleString类92<br />4.4.1 追加和打印93<br />4.4.2 使用SimpleString94<br />4.4.3 组合SimpleString95<br />4.4.4 调用栈展开96<br />4.4.5 异常和性能98<br />4.4.6 异常的替代方法98<br />4.5 复制语义99<br />4.5.1 复制构造函数101<br />4.5.2 复制赋值103<br />4.5.3 默认复制105<br />4.5.4 复制指南106<br />4.6 移动语义106<br />4.6.1 复制行为可能浪费资源106<br />4.6.2 值类别108<br />4.6.3 左值引用和右值引用108<br />4.6.4 std::move函数109<br />4.6.5 移动构造110<br />4.6.6 移动赋值110<br />4.6.7 最终成果111<br />4.6.8 编译器生成的方法113<br />4.7 总结114<br />练习114<br />拓展阅读115<br />第5章 运行时多态116<br />5.1 多态116<br />5.2 一个有启发性的例子116<br />5.2.1 添加新的日志记录器119<br />5.2.2 接口119<br />5.2.3 对象组合和实现继承119<br />5.3 定义接口120<br />5.3.1 基类继承120<br />5.3.2 成员继承121<br />5.3.3 虚方法122<br />5.3.4 纯虚类和虚析构函数124<br />5.3.5 实现接口125<br />5.3.6 使用接口126<br />5.4 更新银行日志记录器126<br />5.4.1 构造函数注入127<br />5.4.2 属性注入127<br />5.4.3 构造函数注入和属性注入的<br /> 选择128<br />5.5 总结129<br />练习129<br />拓展阅读129<br />第6章 编译时多态130<br />6.1 模板130<br />6.2 声明模板130<br />6.2.1 模板类定义131<br />6.2.2 模板函数定义131<br />6.2.3 实例化模板131<br />6.3 类型转换函数132<br />6.3.1 const_cast132<br />6.3.2 static_cast133<br />6.3.3 reinterpret_cast134<br />6.3.4 narrow_cast134<br />6.4 mean:模板函数示例136<br />6.4.1 通用mean136<br />6.4.2 模板类型推断138<br />6.5 SimpleUniquePointer:模板类<br /> 示例139<br />6.6 模板中的类型检查142<br />6.7 concept143<br />6.7.1 定义concept143<br />6.7.2 类型特征144<br />6.7.3 约束要求146<br />6.7.4 从requires表达式构建<br /> concept147<br />6.7.5 使用concept147<br />6.7.6 临时requires表达式151<br />6.8 static_assert:concept之前的权宜<br /> 之计153<br />6.9 非类型模板参数154<br />6.10 可变参数模板156<br />6.11 高级模板主题156<br />6.11.1 模板特化156<br />6.11.2 名字绑定157<br />6.11.3 类型函数157<br />6.11.4 模板元编程157<br />6.12 模板源代码组织157<br />6.13 运行时多态与编译时多态对比158<br />6.14 总结158<br />练习158<br />拓展阅读159<br />第7章 表达式160<br />7.1 运算符160<br />7.1.1 逻辑运算符160<br />7.1.2 算术运算符161<br />7.1.3 赋值运算符162<br />7.1.4 自增和自减运算符163<br />7.1.5 比较运算符163<br />7.1.6 成员访问运算符164<br />7.1.7 三元条件运算符164<br />7.1.8 逗号运算符165<br />7.1.9 重载运算符165<br />7.1.10 重载运算符new167<br />7.1.11 运算符优先级和结合性172<br />7.1.12 求值顺序174<br />7.2 自定义字面量175<br />7.3 类型转换175<br />7.3.1 隐式类型转换176<br />7.3.2 显式类型转换178<br />7.3.3 C风格的类型转换179<br />7.3.4 用户自定义类型的转换180<br />7.4 常量表达式181<br />7.4.1 有关色彩的示例182<br />7.4.2 关于constexpr的说明184<br />7.5 volatile表达式184<br />7.6 总结185<br />练习186<br />拓展阅读186<br />第8章 语句187<br />8.1 表达式语句187<br />8.2 复合语句188<br />8.3 声明语句189<br />8.3.1 函数189<br />8.3.2 命名空间192<br />8.3.3 类型别名195<br />8.3.4 结构化绑定197<br />8.3.5 属性198<br />8.4 选择语句199<br />8.4.1 if语句199<br />8.4.2 switch语句203<br />8.5 迭代语句204<br />8.5.1 while循环204<br />8.5.2 do-while循环205<br />8.5.3 for循环206<br />8.5.4 基于范围的for循环208<br />8.6 跳转语句211<br />8.6.1 break语句212<br />8.6.2 continue语句212<br />8.6.3 goto语句213<br />8.7 总结214<br />练习215<br />拓展阅读215<br />第9章 函数216<br />9.1 函数声明216<br />9.1.1 前缀修饰符216<br />9.1.2 后缀修饰符217<br />9.2 auto返回类型220<br />9.3 auto和函数模板220<br />9.4 重载解析221<br />9.5 可变参数函数222<br />9.6 可变参数模板223<br />9.6.1 用参数包编程223<br />9.6.2 再谈sum函数224&
— 没有更多了 —
以下为对购买帮助不大的评价