内容推荐 C++是一种集过程化程序设计、面向对象程序设计于一体的编程语言,是对C语言的继承。全书共4章,以通俗易懂的语言和丰富的实例分别介绍了C++的开发环境、语言特性、新的变化和项目实战。开发环境主要介绍了编译环境的构建和集成开发环境;语言特性则从C++中的四大特性说起,分析了虚指针、虚函数、字节序与对齐和操作符重载等;新的变化部分以丰富的代码样例对C++11标准的演进作了详细阐述;项目实践则结合高铁/动车模拟抢票系统,讲述实际开发的整体流程。书中所有知识点均给出了代码实例和详细注释,读者可以轻松领会C++的强大功能,快速提高开发能力。 本书适用于有一定程序设计基础的读者进阶C++技能,尤其是有C++工作面试需要的读者,一定不要错过本书。 目录 第1章 工具那些事 1 1.1 编译器那些事 1 1.1.1 Windows上的GCC 1 1.1.2 Linux与MacOS安装GCC 3 1.1.3 Linux下安装Windows编译环境 4 1.2 集成开发环境那些事 4 1.2.1 CLion 5 1.2.2 VSCode 7 1.2.3 Jupyter 8 1.2.4 Vim环境 13 第2章 万丈高楼平地起 24 2.1 四大特性那些事 24 2.1.1 封装 24 2.1.2 抽象 29 2.1.3 继承 30 2.1.4 多态 38 2.2 Virtual那些事 41 2.2.1 虚指针与虚表 41 2.2.2 明白哪些可以作为虚函数 46 2.2.3 纯虚函数和抽象类 48 2.2.4 RTTI与类型转换操作符 51 2.3 大小端那些事 56 2.3.1 大小端的概念 56 2.3.2 字节对齐 57 2.3.3 正确判别大小端 58 2.3.4 优雅地实现大小端转换 59 2.4 字节对齐那些事 60 2.4.1 sizeof操作符计算 60 2.4.2 位域那些事 62 2.5 const与static那些事 64 2.5.1 const那些事 64 2.5.2 static那些事 71 2.6 操作符重载那些事 75 2.6.1 重载操作符 75 2.6.2 转换操作符 77 2.6.3 重载new与delete 79 第3章 拥抱新变化 83 3.1 新的初始化那些事 83 3.1.1 C++98/03初始化方式 83 3.1.2 统一初始化 85 3.1.3 初始化列表 85 3.2 优选nullptr那些事 87 3.2.1 C与C++的NULL 87 3.2.2 nullptr与nullptr_t 88 3.3 变量的自动类型推断那些事 89 3.3.1 auto推断 89 3.3.2 auto原理 91 3.4 基于范围的for循环那些事 92 3.4.1 基本概述 93 3.4.2 基于范围的for循环分类 94 3.4.3 支持自定义类型 95 3.5 右值引用那些事 97 3.5.1 左值与右值 98 3.5.2 万能引用 99 3.5.3 区分万能引用 100 3.5.4 引用折叠 101 3.5.5 完美转发 102 3.5.6 移动语义 103 3.6 智能指针那些事 107 3.6.1 揭开神秘的面纱 107 3.6.2 妙用override与final 110 3.6.3 独占型智能指针 112 3.6.4 共享型智能指针 116 3.6.5 弱引用型智能指针 123 3.7 Lambda那些事 125 3.7.1 Lambda表达式构成 125 3.7.2 lambda与闭包 127 3.7.3 lambda背后的原理 127 3.8 杂谈那些事 129 3.8.1 using还是typedef 129 3.8.2 异常处理noexcept 131 3.8.3 容器那些事 132 第4章 项目实战 140 4.1 项目简介 140 4.2 设计与实现 140 4.2.1 座位及用户设计与实现 140 4.2.2 高铁/动车设计与实现 142 参考文献 157 |