本书主要介绍面向对象程序设计的基本概念,全面系统地介绍了C++语言的基本语法和编程方法,详细地讲述了C++语言面向对象的重要特征:类和对象、继承和派生类、多态性和虚函数等,同时结合学生实验案例介绍了应用C++语言解决实际问题的方法和流程。本书有丰富的例题和习题,便于读者学习和巩固知识。
样章试读
目录
- 第1章 C++程序设计概述 1
1.1 C++语言的历史和演进 1
1.1.1 计算机语言的发展 1
1.1.2 C++语言的产生 2
1.1.3 C++的主要版本 2
1.2 C++语言的特点 2
1.2.1 面向过程 2
1.2.2 面向对象 3
1.3 面向对象的相关概念 3
1.4 C++程序的基本结构和开发环境 5
1.4.1 C++程序的基本结构 5
1.4.2 C++程序的实现 9
1.4.3 C++程序的开发环境 9
习题 17
第2章 C++语言基础 20
2.1 基本数据类型 20
2.2 标识符与关键字 21
2.3 常量与变量 22
2.3.1 常量 22
2.3.2 变量 25
2.4 运算符与表达式 26
2.4.1 运算符 26
2.4.2 表达式 30
2.5 数组类型 35
2.5.1 数组的定义 35
2.5.2 数组的赋值 36
2.5.3 字符数组 39
2.6 枚举类型 40
2.6.1 枚举类型定义 41
2.6.2 枚举变量定义 41
2.6.3 枚举变量赋值 42
2.7 结构体类型 42
2.7.1 结构体类型定义 42
2.7.2 结构体变量的定义和初始化 43
2.7.3 结构体变量的引用 44
2.8 共用体类型 45
2.9 控制语句 46
2.9.1 选择结构语句 46
2.9.2 循环结构语句 51
2.9.3 转向语句 57
2.10 应用实例——水果超市管理
系统菜单设计 59
2.10.1 水果超市管理系统功能
介绍 59
2.10.2 系统菜单设计 60
习题 62
第3章 指针和引用 67
3.1 指针 67
3.1.1 指针的概念 67
3.1.2 指针变量的定义 67
3.1.3 指针变量的运算 68
3.1.4 指针的指针 71
3.2 指针与数组 71
3.2.1 指向数组的指针 71
3.2.2 指针数组 75
3.3 字符串 77
3.3.1 C风格字符串 77
3.3.2 string 类型 78
3.4 引用 80
3.4.1 引用的概念 80
3.4.2 指针和引用的区别与联系 81
3.5 指针及引用在函数中的作用 83
3.6 应用实例——水果超市管理
系统水果基本信息管理 84
习题 86
第4章 函数 90
4.1 函数的定义和声明 90
4.1.1 函数的定义 90
4.1.2 函数的声明 91
4.1.3 函数的类型 92
4.2 函数的参数与调用 94
4.2.1 函数的参数 94
4.2.2 函数的调用 95
4.3 内联函数 98
4.4 函数的重载 100
4.5 标识符的作用域 101
4.5.1 作用域的种类 102
4.5.2 标识符的作用域规则 102
4.5.3 全局变量和局部变量 104
4.6 应用实例——水果超市管理
系统购物车的设计 108
习题 111
第5章 类和对象 116
5.1 类的定义 116
5.1.1 类的定义格式 116
5.1.2 类成员的访问控制 118
5.1.3 成员函数的特性 119
5.2 对象的定义和使用 120
5.2.1 对象的定义方法 120
5.2.2 对象成员的表示方法 121
5.3 构造函数和析构函数 122
5.3.1 构造函数和拷贝构造函数 123
5.3.2 析构函数 127
5.4 静态成员 130
5.4.1 静态数据成员 130
5.4.2 静态成员函数 131
5.5 常对象和常成员 132
5.5.1 常对象 132
5.5.2 常数据成员 133
5.5.3 常成员函数 133
5.6 对象指针和对象引用 135
5.6.1 对象指针 135
5.6.2 this指针 138
5.6.3 对象引用 139
5.7 对象数组 140
5.7.1 对象数组的定义和使用 141
5.7.2 对象指针数组 142
5.7.3 指向对象数组的指针 143
5.8 子对象和堆对象 144
5.8.1 子对象 144
5.8.2 堆对象 145
5.9 友元 147
5.9.1 友元函数 147
5.9.2 友元类 148
5.10 类的作用域和对象的生存期 150
5.10.1 类的作用域 150
5.10.2 对象的生存期 150
5.11 应用实例——水果超市管理
系统基本类的设计 152
5.11.1 “水果”类Fruit的设计 152
5.11.2 “水果种类”类FruitKind
的设计 154
5.11.3 “购买水果品种”类
CartItem的设计 157
5.11.4 “购物车”类Cart的设计 158
习题 159
第6章 继承 166
6.1 继承的概念 166
6.1.1 什么是继承 166
6.1.2 派生类的定义格式 167
6.1.3 派生类对象的结构 167
6.2 继承方式 168
6.2.1 公有继承 168
6.2.2 私有继承 169
6.2.3 保护继承 170
6.3 派生类的构造函数和析构函数 172
6.4 多继承 175
6.4.1 多继承的概念 175
6.4.2 多继承下的构造函数 177
6.4.3 二义性 179
6.5 虚基类 183
6.5.1 虚基类的定义 183
6.5.2 虚基类的构造函数和析构
函数 184
6.6 类型转换 186
6.6.1 派生类到基类的转换 186
6.6.2 基类到派生类的转换 187
6.7 应用实例——水果超市管理
系统类的继承关系 187
6.7.1 “正价水果”类RegularFruit
的设计 187
6.7.2 “特价水果”类DiscountFruit
的设计 189
6.7.3 验证 190
习题 190
第7章 多态 197
7.1 多态的描述 197
7.1.1 什么是多态 197
7.1.2 多态的分类 197
7.1.3 多态的实现方式 198
7.2 运算符重载 198
7.2.1 运算符重载的定义 199
7.2.2 双目运算符重载 200
7.2.3 单目运算符重载 206
7.3 虚函数 208
7.3.1 虚成员函数 211
7.3.2 虚析构函数 212
7.4 抽象类 215
7.4.1 纯虚函数 215
7.4.2 抽象类与具体类 215
7.5 应用实例——水果超市管理
系统中虚函数的使用 217
习题 220
第8章 模板和STL 226
8.1 模板简介 226
8.2 函数模板 226
8.3 类模板 228
8.3.1 类模板的定义 228
8.3.2 类模板用作函数的参数 230
8.3.3 类模板用作基类 231
8.4 STL 232
8.4.1 STL简介 232
8.4.2 容器 232
8.4.3 迭代子 233
8.4.4 算法 235
习题 237
第9章 异常处理 238
9.1 简介 238
9.2 基本语法 239
9.3 构造函数、析构函数和异常 242
9.4 继承和异常 245
9.5 标准库中的异常类 245
习题 247
第10章 案例实训 248
10.1 系统分析 248
10.1.1 背景知识简介 248
10.1.2 系统需求分析 249
10.1.3 系统功能分析 250
10.2 系统设计 251
10.2.1 水果种类设计 251
10.2.2 购物过程设计 252
10.2.3 系统类图 252
10.3 系统实现 253
10.3.1 “水果”类 253
10.3.2 “正价水果”类 255
10.3.3 “特价水果”类 256
10.3.4 “水果种类”类 257
10.3.5 “购物项”类 260
10.3.6 “购物车”类 262
10.3.7 主程序 263
10.4 系统运行结果 266
参考文献 270
附录 271
附录1 C++系统关键字及其含义
描述 271
附录2 C++常用运算符的功能、
优先级和结合性 272
附录3 水果超市管理系统源程序
清单 273