本书选择以C with Class的过程化编程为主、以对象化编程为辅的编写策略,抓住C++语言的特色,略去C语言的标准流,保留指针这一能直接访问硬件的低级语言特性,在介绍了结构化编程的基础语法后,将基本数据类型作为C++语言学习的重点,适度讨论了类型转换与类型安全等C++的基础内容,之后转向复合数据类型、基本容器等内容,引入用户自定义函数等相关概念和用法。 本书在讲义的基础上,增加了较多的数学教学案例(比如Monte-Carlo模拟、无穷级数逼近、数值积分、快速傅里叶变换等),为高性能计算、数值模拟提供了必备技能。与此同时,在C++ 本身语法上也做了相对革新,原讲义侧重于经典C++ 语法(也即C++98);而本书推陈出新,强调并采用适量的现代C++ 语法(C++11),弱化一部分来自 C 语言的古典语法。 因程序设计作为工科特征明显的课程,且教学过程特别强调实践,本教材配备了大量习题以及上机实验题,颇具特色。
1 C++程序设计语言概述 / 1 1.1 C++语言的发展简史 / 1 1.2 C++开发环境搭建一览 / 4 1.3 C++程序开发的大致流程 / 8 1.4 相关网络资源汇总 / 14 2 C++语言的基础语法 / 16 2.1 再论 Hello world 的 C++源代码 / 16 2.2 C++的标识符与声明语句 / 18 2.3 表达式与简单的数学运算 / 21 2.4 逻辑运算与关系操作符 / 23 2.5 分支结构 / 24 2.6 循环结构 / 29 2.7 一些结构化编程的例子 / 33 2.8 常量与魔术数 / 36 2.9 条件表达式 / 37 2.10 转移语句 / 39 2.11 随机数与计时工具 / 41 2.12 标准流与文件流 / 43 3 基本数据类型 / 48 3.1 整型数据 / 48 3.2 浮点型数据 / 53 3.3 标准流的格式控制 / 57 3.4 与算术相关的基本数据类型中的运算 / 60 3.5 字符型数据 / 62 3.6 内置操作符与运算优先级 / 66 3.7 左值与右值 / 70 3.8 溢出与机器精度 / 72 3.9 基本数据类型的转换 / 74 4 复合数据类型与简单容器 / 78 4.1 数组 / 78 4.2 向量 / 84 4.3 指针 / 89 4.4 指针数组与数组指针* / 94 4.5 常量指针与指针常量 / 96 4.6 空类型指针及相关指针类型的转换 / 99 4.7 引用 / 100 4.8 C 风格字符串 / 103 4.9 字符编码与字节流* / 108 4.10 C 风格字符串的常用操作 / 111 4.11 C++风格字符串 / 113 4.12 空格的输入与 C++风格的字符串流 / 117 4.13 字符串的更多表示方法以及编码转换* / 120 4.14 附注 / 124 5 函数与作用域 / 126 5.1 代码重用与函数 / 126 5.2 函数栈与递归 / 130 5.3 指向堆区的指针与智能指针 / 135 5.4 内联函数与带参宏 / 138 5.5 参数传递与返回值 / 143 5.6 指针传递与返回 / 149 5.7 数组传递与返回 / 153 5.8 函数指针与回调函数 / 158 5.9 引用传递与返回 / 164 5.10 函数重载 / 171 5.11 函数的默认参数 / 176 5.12 多文件结构与头文件 / 178 5.13 作用域 / 185 5.14 生命周期 / 190 5.15 命名空间 / 197 6 用户自定义数据类型 / 201 6.1 枚举类型 / 201 6.2 操作符重载 / 205 6.3 结构类型 / 209 6.4 封装与面向对象 / 216 6.5 对象的构造 / 220 6.6 成员与友元 / 225 6.7 静态成员与常量成员 / 227 6.8 赋值操作符重载、复制构造函数与析构函数 / 231 6.9 对象的隐式类型转换 / 238 6.10 组合与继承 / 241 6.11 对象的强制类型转换 / 246 6.12 隐藏、覆盖与多态* / 250 6.13 异常处理 / 255 6.14 分离类的接口与实现 / 262 参考文献 / 267