
| |
|
|
| 第1章 C++初步 1 1.1 程序设计语言的发展 1 1.2 面向过程的程序设计 2 1.3 面向对象的程序设计 3 1.4 C++的诞生 4 1.5 程序开发过程 5 1.6 最简单的程序 6 本章小结 8 习题 8 第2章 基本数据类型与表达式 9 2.1 C++的词法记号和标识符 9 2.1.1 字符集 9 2.1.2 关键字 9 2.1.3 标识符 10 2.1.4 分隔符 10 2.1.5 空白 10 2.2 基本数据类型 10 2.3 变量和常量 12 2.3.1 变量 13 2.3.2 常量 14 2.4 运算符和表达式 17 2.4.1 表达式 18 2.4.2 语句和块 18 2.4.3 运算符 18 2.5 基本输入输出 27 2.5.1 标准输入流cin 27 2.5.2 标准输出流cout 27 2.5.3 IO流的格式控制 28 本章小结 31 习题 31 第3章 C++控制语句 35 3.1 算法的基本控制结构 35 3.1.1 算法及其表示 35 3.1.2 程序的三种控制结构 37 3.2 if选择语句 38 3.2.1 没有else分支的形式 38 3.2.2 双分支形式 38 3.2.3 多分支形式 39 3.2.4 if语句的嵌套 40 3.3 switch选择语句 42 3.4 循环语句 46 3.4.1 while循环语句 46 3.4.2 do-while循环语句 48 3.4.3 for循环语句 49 3.4.4 break语句和continue语句 51 3.5 循环嵌套 53 3.5.1 循环结构嵌套 53 3.5.2 循环结构和选择结构的相互嵌套 54 3.6 应用举例 56 本章小结 60 习题 60 第4章 函数 63 4.1 函数概述 63 4.1.1 自定义函数和库函数 63 4.1.2 数学库函数 64 4.2 函数定义及使用 65 4.2.1 函数的定义 65 4.2.2 函数原型 67 4.2.3 return语句 68 4.2.4 函数使用的三种方式 70 4.3 函数调用 72 4.3.1 函数调用的执行机制 72 4.3.2 函数的参数传递(值调用) 75 4.3.3 嵌套调用 77 4.3.4 递归调用 80 4.4 内联函数 84 4.5 重载函数 85 4.6 默认参数值的函数 86 4.7 全局变量与局部变量 87 4.7.1 局部变量 88 4.7.2 全局变量 88 4.7.3 作用域 88 4.8 变量的存储类型和生存期 90 4.8.1 变量的存储类型 90 4.8.2 生存期 93 4.8.3 多文件结构 93 4.9 编译预处理 94 本章小结 97 习题 97 第5章 数组 100 5.1 数组基本概念 100 5.1.1 数组 100 5.1.2 数组的定义 101 5.2 数组元素的下标 102 5.3 数组初始化 103 5.3.1 数组成员的初始化 103 5.3.2 在程序中进行初始化 104 5.3.3 数组省略初始化方法 105 5.4 数组的大小和数组越界 107 5.5 字符数组 109 5.5.1 字符数组定义 109 5.5.2 初始化字符数组 109 5.5.3 for循环用于字符数组 110 5.6 向函数传递数组 111 5.6.1 传递给标准库函数 111 5.6.2 传递给自定义函数 111 5.7 多维数组 112 5.7.1 理解多维数组 112 5.7.2 多维数组的表示方式 113 5.7.3 数组在内存的映象 114 5.7.4 定义多维数组 115 5.7.5 表格与for循环 116 本章小结 118 习题 119 第6章 指针和引用 121 6.1 指针的概念 121 6.1.1 指针和指针变量 121 6.1.2 指针变量的声明和初始化 121 6.2 指针的运算 122 6.2.1 指针的赋值运算 123 6.2.2 间接引用运算 124 6.2.3 指针的算术运算 125 6.2.4 指针的关系运算和逻辑运算 126 6.2.5 void类型指针 126 6.3 指针和函数 128 6.3.1 指针作为函数的参数:地址调用 128 6.3.2 指针的指针作函数的参数 130 6.3.3 传递参数的保护:指针和常量 130 6.3.4 指针函数 133 6.4 指针和字符串 134 6.4.1 字符串处理的两种方式 134 6.4.2 字符串操作函数 135 6.5 通过指针访问数组 136 6.5.1 通过指针访问一维数组 136 6.5.2 通过指针访问二维数组 138 6.5.3 指针数组 140 6.5.4 命令行参数 142 6.6 指针访问动态内存 143 6.6.1 动态内存的申请和释放 143 6.6.2 动态数组空间的申请和释放 144 6.6.3 内存泄漏和指针悬挂 144 6.7 引用概念 145 6.7.1 引用的声明和使用 145 6.7.2 通过引用传递函数的参数 147 6.7.3 用引用作为函数的返回值 148 本章小结 149 习题 149 第7章 C++其他自定义数据类型 151 7.1 枚举类型 151 7.2 结构类型 153 7.2.1 结构类型的定义和初始化 153 7.2.2 结构类型的使用 156 7.3 联合类型 161 本章小结 163 习题 163 第8章 类与对象 165 8.1 类和对象的定义 165 8.1.1 使用类对象 166 8.1.2 类的声明 166 8.1.3 类的成员函数 167 8.1.4 对象 169 8.1.5 类的作用域与可见性 170 8.2 对象的使用 172 8.2.1 对象指针 172 8.2.2 this指针 173 8.2.3 对象数组 174 8.2.4 对象作为普通函数的参数与返回值 175 8.3 构造函数 178 8.4 析构函数 181 8.5 拷贝构造函数 183 8.5.1 拷贝构造函数的定义 183 8.5.2 深拷贝和浅拷贝 184 8.6 类的静态成员 188 8.6.1 静态数据成员 189 8.6.2 静态函数成员 190 8.7 类成员的保护和使用 191 8.7.1 类的封装 191 8.7.2 友元 192 8.7.3 常对象和常成员 195 8.8 类的组合 197 8.9 面向对象分析和设计 200 8.9.1 软件工程 200 8.9.2 面向对象分析(OOA) 201 8.9.3 面向对象设计(OOD) 201 8.9.4 面向对象的意义 202 本章小结 203 习题 203 第9章 继承与派生 208 9.1 继承的概念 208 9.2 继承方式 209 9.2.1 派生类的定义 209 9.2.2 继承的访问控制 214 9.3 派生类构造函数的定义 216 9.3.1 派生类的构造函数 216 9.3.2 派生类的析构函数 219 9.4 多继承 220 9.4.1 多继承与二义性 220 9.4.2 虚基类 222 本章小结 222 习题 223 第10章 运算符重载 229 10.1 运算符重载的需要性 229 10.2 对运算符重载的限制 230 10.3 运算符重载的语法 231 10.4 ++和??运算符的重载 234 10.5 赋值运算符的重载 236 10.6 转换运算符的重载 237 本章小结 239 习题 239 第11章 多态性 241 11.1 多态性的概念 241 11.1.1 面向对象程序设计中多态的表现 241 11.1.2 多态的实现:联编 242 11.2 继承中的静态联编 242 11.2.1 派生类对象调用同名函数 242 11.2.2 通过基类指针调用同名函数 244 11.3 虚函数和运行时的多态 246 11.3.1 虚函数 246 11.3.2 虚函数的使用 247 11.3.3 虚析构函数 249 11.4 纯虚函数和抽象类 250 11.5 继承和派生的应用 257 11.6 模板 265 11.6.1 函数模板 265 11.6.2 函数模板使用中的问题 268 11.6.3 重载函数模板 270 11.6.4 类模板 271 本章小结 274 习题 274 第12章 I/O流及输入输出 278 12.1 流类库概述 278 12.2 输出流 280 12.2.1 设备输出流 280 12.2.2 文件输出流 283 12.3 输入流 286 12.3.1 标准设备输入流 286 12.3.2 文件输入流 287 12.4 输入/输出流 290 12.5 重载插入和提取运算符 290 本章小结 292 习题 292 第13章 异常处理 294 13.1 异常和异常处理 294 13.1.1 异常及其特点 294 13.1.2 异常处理方法及举例 294 13.2 C++异常处理机制 296 13.3 用类的对象传递异常 298 13.3.1 用户自定义类的对象传递异常 299 13.3.2 用exception类的对象传递异常 301 13.4 异常处理中的退栈和对象析构 303 本章小结 305 习题 305 |
商品评论(0条)