第1章Java 概 述1
1.1Java简介1
1.1.1Java的产生1
1.1.2Java的特点1
1.1.3Java三大平台2
1.2Java的开发和运行环境3
1.2.1Java虚拟机3
1.2.2JDK的安装3
1.2.3环境变量的设置5
1.2.4Java API文档6
1.3Java程序开发实例7
1.3.1Java应用程序实例8
1.3.2Java小程序实例10
1.4Eclipse开发平台11
1.4.1Eclipse安装11
1.4.2Eclipse平台的项目开发12
习题114第2章Java基本语法15
2.1标识符和关键字15
2.1.1标识符15
2.1.2关键字15
2.1.3分隔符16
2.1.4注释符16
2.2数据类型、变量与常量17
2.2.1数据类型17
2.2.2变量18
2.2.3常量18
2.3运算符和表达式19
2.3.1运算符19
2.3.2运算符的优先级25
2.3.3表达式25
2.4数据类型的转换29
习题230第3章Java流程控制32
3.1语句与程序结构32
3.1.1语句32
3.1.2程序结构33
3.2顺序结构33
3.3选择结构34
3.3.1if单分支结构34
3.3.2if双分支结构 35
3.3.3if多分支结构36
3.3.4if的嵌套结构 37
3.3.5switch语句39
3.4循环结构42
3.4.1for语句43
3.4.2while语句45
3.4.3do…while语句47
3.4.4循环嵌套48
3.5跳转结构50
3.5.1中断语句break50
3.5.2继续语句continue52
3.6数组应用53
3.6.1数组的定义53
3.6.2数组的运算55
3.6.3应用举例56
3.7字符串处理59
3.7.1字符串的定义和赋值59
3.7.2字符串的基本运算60
3.7.3应用举例62
习题363第4章Java面向对象编程67
4.1面向对象编程概述67
4.1.1面向对象的程序设计方法67
4.1.2类和对象67
4.1.3面向对象编程的特点67
4.1.4Java程序设计语言68
4.2类68
4.2.1类的定义68
4.2.2成员变量69
4.2.3成员方法70
4.2.4构造方法74
4.3对象76
4.3.1对象的声明76
4.3.2对象的创建及初始化77
4.3.3对象的使用77
4.3.4对象的销毁81
4.3.5this关键字81
4.4类的封装性83
4.4.1包83
4.4.2访问权限85
4.4.3访问器87
4.4.4静态成员88
4.5类的继承性90
4.5.1继承的概念90
4.5.2子类90
4.5.3super关键字93
4.5.4最终类和抽象类95
4.6类的多态性96
4.6.1多态的概念96
4.6.2方法重载96
4.6.3方法覆盖98
4.6.4绑定99
习题4100第5章接口、内部类和Java API基础105
5.1接口105
5.1.1接口的概念105
5.1.2接口的声明105
5.1.3接口的实现106
5.1.4常用系统接口109
5.2内部类110
5.2.1内部类和内部接口的概念110
5.2.2内部类的定义和使用111
5.3java.lang包中的基础类112
5.3.1Object类112
5.3.2System类112
5.3.3Math类113
5.3.4数据类型类114
5.4java.util包中的工具类115
5.4.1日期类116
5.4.2Random类116
5.4.3Scanner类117
5.4.4集合类117
习题5119第6章异常处理121
6.1异常的概念121
6.2异常类123
6.2.1Error类及其子类124
6.2.2Exception类及其子类124
6.3异常处理125
6.3.1try…catch…finally语句125
6.3.2抛出异常129
6.4创建自己的异常类131
习题6132第7章Applet程序136
7.1Applet简介136
7.1.1Java Applet说明136
7.1.2Applet的形式及其类的层次136
7.2Applet生命周期和显示方法137
7.2.1Applet生命周期137
7.2.2Applet类的显示方法138
7.2.3Applet的编写与执行139
7.3HTML中的Applet标记140
7.4Applet应用举例141
习题7144第8章图形用户界面147
8.1AWT与Swing147
8.1.1AWT概述147
8.1.2AWT的基本组件148
8.1.3Swing概述150
8.1.4AWT与Swing的区别151
8.2事件处理151
8.2.1Java中的事件处理机制152
8.2.2键盘事件155
8.2.3鼠标事件157
8.2.4其他常用事件160
8.3布局管理器172
8.3.1布局管理器概述173
8.3.2常用布局173
8.4Swing组件176
8.4.1Swing包中类的关系176
8.4.2Swing中的容器177
8.4.3Swing中的常用组件188
8.4.4Swing中的新增组件191
8.4.5Swing事件概述195
习题8196第9章输入输出流198
9.1I/O流概述198
9.1.1数据流概念198
9.1.2Java数据流介绍198
9.2字节流201
9.2.1InputStream和OutputStream201
9.2.2FileInputStream和FileOutputStream202
9.2.3RandomAccessFile205
9.2.4BufferedInputStream和BufferedOutputStream207
9.2.5ByteArrayInputStream和ByteArrayOutputStream209
9.2.6SequenceInputStream212
9.2.7标准输入输出流213
9.3字符流214
9.3.1Reader和Writer215
9.3.2InputStreamReader和OutputStreamWriter215
9.3.3FileReader和FileWriter218
9.3.4StringReader和StringWriter218
9.3.5其他类型的字符流220
9.4文件的处理221
9.4.1文件信息获取和属性更改221
9.4.2文件和目录操作224
9.5串行化225
9.5.1串行化的概念225
9.5.2串行化的方法226
习题9227第10章多线程229
10.1线程的概念229
10.1.1多线程编程的优势229
10.1.2多线程编程的难点230
10.2线程的实现230
10.2.1创建Java线程230
10.2.2Java线程的状态233
10.2.3Java线程的优先级234
10.2.4守护线程234
10.2.5终止另一个线程235
10.3线程同步237
10.3.1同步访问共享资源237
10.3.2协作完成任务240
习题10243第11章访问数据库245
11.1数据库简介245
11.1.1关系型数据库系统概述245
11.1.2MySQL数据库简介247
11.1.3MySQL Workbench简介252
11.2使用JDBC进行数据库编程252
11.2.1JDBC架构简介253
11.2.2使用JDBC访问数据库253
11.2.3JDBC高级特性262
习题11270第12章网络程序设计272
12.1网络的基本概念272
12.1.1IP地址与端口号272
12.1.2Java中IP地址及端口号表示273
12.1.3客户服务器工作模式275
12.1.4TCP与UDP通信275
12.2URL的使用275
12.2.1URL的表示275
12.2.2URL类276
12.2.3通过URLConnection实现双向通信278
12.3基于TCP的网络通信279
12.3.1客户端与服务器端通信279
12.3.2多客户端通信285
12.4基于UDP的网络通信287
12.4.1UDP数据报文包287
12.4.2UDP通信288
习题12292第1章Java概述1
1.1Java简介1
1.1.1Java的产生1
1.1.2Java的特点1
1.1.3Java三大平台2
1.2Java的开发和运行环境3
1.2.1Java虚拟机3
1.2.2JDK的安装3
1.2.3环境变量的设置5
1.2.4Java API文档6
1.3Java程序开发实例7
1.3.1Java应用程序实例8
1.3.2Java小程序实例10
1.4Eclipse开发平台11
1.4.1Eclipse安装11
1.4.2Eclipse平台的项目开发12
习题114第2章Java基本语法15
2.1标识符和关键字15
2.1.1标识符15
2.1.2关键字15
2.1.3分隔符16
2.1.4注释符16
2.2数据类型、变量与常量17
2.2.1数据类型17
2.2.2变量18
2.2.3常量18
2.3运算符和表达式19
2.3.1运算符19
2.3.2运算符的优先级25
2.3.3表达式25
2.4数据类型的转换29
习题230第3章Java流程控制32
3.1语句与程序结构32
3.1.1语句32
3.1.2程序结构33
3.2顺序结构33
3.3选择结构34
3.3.1if单分支结构34
3.3.2if双分支结构 35
3.3.3if多分支结构36
3.3.4if的嵌套结构 37
3.3.5switch语句39
3.4循环结构42
3.4.1for语句43
3.4.2while语句45
3.4.3do while语句47
3.4.4循环嵌套48
3.5跳转结构50
3.5.1中断语句break50
3.5.2继续语句continue52
3.6数组应用53
3.6.1数组的定义53
3.6.2数组的运算55
3.6.3应用举例56
3.7字符串处理59
3.7.1字符串的定义和赋值59
3.7.2字符串的基本运算60
3.7.3应用举例62
习题363第4章Java面向对象编程67
4.1面向对象编程概述67
4.1.1面向对象的程序设计方法67
4.1.2类和对象67
4.1.3面向对象编程的特点67
4.1.4Java程序设计语言68
4.2类68
4.2.1类的定义68
4.2.2成员变量69
4.2.3成员方法70
4.2.4构造方法74
4.3对象76
4.3.1对象的声明76
4.3.2对象的创建及初始化77
4.3.3对象的使用77
4.3.4对象的销毁81
4.3.5this关键字81
4.4类的封装性83
4.4.1包83
4.4.2访问权限85
4.4.3访问器87
4.4.4静态成员88
4.5类的继承性90
4.5.1继承的概念90
4.5.2子类90
4.5.3super关键字93
4.5.4最终类和抽象类95
4.6类的多态性96
4.6.1多态的概念96
4.6.2方法重载96
4.6.3方法覆盖98
4.6.4绑定99
习题4100第5章接口、内部类和Java API基础105
5.1接口105
5.1.1接口的概念105
5.1.2接口的声明105
5.1.3接口的实现106
5.1.4常用系统接口109
5.2内部类110
5.2.1内部类和内部接口的概念110
5.2.2内部类的定义和使用111
5.3java.lang包中的基础类112
5.3.1Object类112
5.3.2System类112
5.3.3Math类113
5.3.4数据类型类114
5.4java.util包中的工具类115
5.4.1日期类116
5.4.2Random类116
5.4.3Scanner类117
5.4.4集合类117
习题5119第6章异常处理121
6.1异常的概念121
6.2异常类123
6.2.1Error类及其子类124
6.2.2Exception类及其子类124
6.3异常处理125
6.3.1try…catch…finally语句125
6.3.2抛出异常129
6.4创建自己的异常类131
习题6132第7章Applet程序134
7.1Applet简介134
7.1.1Java Applet说明134
7.1.2Applet的形式及其类的层次134
7.2Applet生命周期和显示方法135
7.2.1Applet生命周期135
7.2.2Applet类的显示方法136
7.2.3Applet的编写与执行136
7.3HTML中的Applet标记138
7.4Applet应用举例139
习题7142第8章图形用户界面143
8.1AWT与Swing143
8.1.1AWT概述143
8.1.2AWT的基本组件144
8.1.3Swing概述146
8.1.4AWT与Swing的区别147
8.2事件处理147
8.2.1Java中的事件处理机制148
8.2.2键盘事件151
8.2.3鼠标事件153
8.2.4其他常用事件156
8.3布局管理器168
8.3.1布局管理器概述169
8.3.2常用布局169
8.4Swing组件172
8.4.1Swing包中类的关系172
8.4.2Swing中的容器173
8.4.3Swing中的常用组件184
8.4.4Swing中的新增组件187
8.4.5Swing事件概述191
习题8192第9章输入输出流194
9.1I/O流概述194
9.1.1数据流概念194
9.1.2Java数据流介绍194
9.2字节流197
9.2.1InputStream/OutputStream197
9.2.2FileInputStream和FileOutputStream198
9.2.3RandomAccessFile201
9.2.4BufferedInputStream和BufferedOutputStream203
9.2.5ByteArrayInputStream和ByteArrayOutputStream205
9.2.6SequenceInputStream208
9.2.7标准输入输出流209
9.3字符流210
9.3.1Reader和Writer211
9.3.2InputStreamReader和OutputStreamWriter211
9.3.3FileReader和FileWriter214
9.3.4StringReader和StringWriter214
9.3.5其他类型的字符流216
9.4文件的处理217
9.4.1文件信息获取和属性更改217
9.4.2文件和目录操作220
9.5串行化221
9.5.1串行化的概念221
9.5.2串行化的方法222
习题9223第10章多线程225
10.1线程的概念225
10.1.1多线程编程的优势225
10.1.2多线程编程的难点226
10.2线程的实现226
10.2.1创建Java线程226
10.2.2Java线程的状态229
10.2.3Java线程的优先级230
10.2.4守护线程230
10.2.5终止另一个线程231
10.3线程同步233
10.3.1同步访问共享资源233
10.3.2协作完成任务236
习题10239第11章访问数据库241
11.1数据库简介241
11.1.1关系型数据库系统概述241
11.1.2MySQL数据库简介243
11.1.3MySQL Workbench简介248
11.2使用JDBC进行数据库编程248
11.2.1JDBC架构简介249
11.2.2使用JDBC访问数据库249
11.2.3JDBC高级特性258
习题11266第12章网络程序设计268
12.1网络的基本概念268
12.1.1IP地址与端口号268
12.1.2Java中IP地址及端口号表示269
12.1.3客户服务器工作模式271
12.1.4TCP与UDP通信271
12.2URL的使用271
12.2.1URL的表示271
12.2.2URL类272
12.2.3通过URLConnection实现双向通信274
12.3基于TCP的网络通信275
12.3.1客户端与服务器端通信275
12.3.2多客户端通信281
12.4基于UDP的网络通信283
12.4.1UDP数据报文包283
12.4.2UDP通信284
习题12288
第1章C++入门1
1.1C++简介1
1.1.1C++的产生与发展1
1.1.2C++的特点2
1.2简单的C++程序3
1.2.1C++程序结构3
1.2.2输入与输出5
1.2.3注释6
1.3C++程序的上机执行过程7
1.4程序设计语言介绍8
1.4.1机器语言8
1.4.2汇编语言9
1.4.3高级语言10
习题113第2章基本数据类型与表达式14
2.1字符集与标识符14
2.1.1字符集14
2.1.2标识符14
2.1.3关键字15
2.2基本数据类型16
2.2.1整型16
2.2.2字符型16
2.2.3布尔型17
2.2.4浮点型17
2.3常量18
2.3.1数值型常量18
2.3.2字符型常量19
2.4变量20
2.4.1变量的定义20
2.4.2常变量21
2.5运算符与表达式23
2.5.1算术运算符与算术表达式23
2.5.2赋值运算符与赋值表达式24
2.5.3逗号运算符与逗号表达式24
2.5.4自增自减运算符25
2.5.5类型转换25
2.5.6位运算符与位运算表达式27
2.6计算机中的数据表示29
2.6.1计算机中的数制29
2.6.2数值型数据的表示31
2.6.3字符型数据的编码表示33
习题233第3章语句与结构化程序设计34
3.1功能语句与顺序结构程序设计34
3.1.1赋值语句34
3.1.2空语句34
3.1.3复合语句34
3.1.4顺序结构程序设计34
3.2分支语句与分支结构程序设计35
3.2.1关系表达式和逻辑表达式35
3.2.2if语句38
3.2.3if…else语句38
3.2.4条件运算符与条件表达式40
3.2.5switch语句41
3.3循环语句与循环结构程序设计42
3.3.1for循环语句43
3.3.2do…while循环语句45
3.3.3while循环语句47
3.3.4循环语句的嵌套48
3.4转移语句49
3.4.1break语句49
3.4.2continue语句49
3.4.3goto语句50
3.5程序举例51
3.6算法与程序设计58
3.6.1算法设计与分析58
3.6.2程序设计风格61
习题362第4章数组与字符串63
4.1数组的定义与使用63
4.1.1一维数组的定义与使用63
4.1.2二维数组的定义与使用64
4.2数组的初始化66
4.3数组应用举例67
4.3.1一维数组应用68
4.3.2二维数组应用73
4.4字符串76
4.4.1字符串变量的定义与使用76
4.4.2字符串变量的输入输出77
4.4.3字符串运算78
4.4.4字符串数组79
4.5字符数组81
4.6动态数组82
4.7静态数组访问的下标越界问题84
习题485第5章函数86
5.1函数定义86
5.2函数调用与函数声明87
5.2.1函数调用87
5.2.2函数声明88
5.3函数的参数传递90
5.3.1值传递90
5.3.2引用传递91
5.3.3函数的默认形参值92
5.4函数的嵌套与递归93
5.4.1函数嵌套94
5.4.2函数递归94
5.5数组作函数参数97
5.5.1数组元素作函数参数97
5.5.2一维数组名作函数参数98
5.5.3二维数组名作函数参数99
5.6内联函数100
5.7重载函数101
5.8系统函数103
习题5104第6章指针106
6.1指针变量106
6.1.1内存单元地址106
6.1.2指针变量的定义107
6.2指针的赋值与运算107
6.2.1指针的赋值107
6.2.2指针的运算108
6.3指针作为函数参数110
6.4指针与数组111
6.4.1数组的地址111
6.4.2指针与一维数组111
6.4.3指针与二维数组112
6.4.4指针数组114
6.5动态内存分配116
6.6函数指针119
习题6122第7章自定义数据类型123
7.1结构体类型123
7.1.1结构体类型的定义123
7.1.2结构体变量的定义与初始化124
7.1.3结构体变量的引用125
7.2结构体应用127
7.2.1结构体数组127
7.2.2结构体和指针129
7.2.3结构体和函数131
7.3共用体134
7.3.1共用体的定义135
7.3.2共用体的应用136
7.4链表137
7.4.1线性表137
7.4.2线性链表138
7.4.3线性链表的操作139
7.5枚举类型144
7.5.1枚举类型和枚举变量的定义144
7.5.2枚举变量的赋值和引用145
7.5.3枚举变量值的输入与输出145
习题7147第8章C++程序结构149
8.1C++程序构成149
8.2预处理命令150
8.2.1宏定义150
8.2.2文件包含151
8.2.3条件编译153
8.3变量的作用域156
8.3.1局部变量156
8.3.2全局变量156
8.4变量的存储类别157
8.4.1局部自动变量158
8.4.2局部寄存器变量159
8.4.3局部静态变量159
8.4.4外部变量声明160
8.5内部函数与外部函数162
8.5.1内部函数162
8.5.2外部函数163
习题8164第9章类和对象165
9.1面向对象程序设计概述165
9.1.1面向对象的概念165
9.1.2面向对象程序设计的特点165
9.1.3面向对象与面向过程的区别166
9.2类和对象167
9.2.1类的定义167
9.2.2对象的定义170
9.2.3对象成员的访问171
9.3构造函数173
9.3.1不带参数的构造函数173
9.3.2带参数的构造函数174
9.3.3带默认值的构造函数175
9.3.4带初始化表的构造函数176
9.3.5构造函数的重载178
9.4析构函数180
9.5复制构造函数183
9.5.1对象的赋值183
9.5.2对象的复制184
9.6对象数组188
9.7const对象和const成员190
9.8成员函数存储与this指针192
9.9类静态成员194
9.9.1静态数据成员194
9.9.2静态成员函数195
9.10友元函数与友元类197
9.10.1友元函数199
9.10.2友元类201
习题9202第10章继承与派生203
10.1继承与派生的概念203
10.2派生类的声明204
10.2.1派生类的声明204
10.2.2派生类的构成205
10.3派生类成员的访问特性207
10.3.1公有继承207
10.3.2私有继承208
10.3.3保护继承208
10.3.4多级派生时的访问特性209
10.4派生类的构造函数和析构函数212
10.4.1简单派生类的构造函数213
10.4.2有子对象的派生类的构造函数215
10.4.3派生类的析构函数216
10.5基类与派生类的转换218
10.5.1派生类对象的值可以赋给基类对象218
10.5.2派生类对象可以作为基类对象使用219
10.6类的继承与组合220
10.7继承在软件开发中的作用221
10.8多基类继承224
10.8.1定义多基类继承224
10.8.2多继承派生类的构造函数226
10.8.3基类成员名冲突227
10.8.4虚基类228
习题10232第11章运算符重载233
11.1运算符重载的实现233
11.2运算符重载规则237
11.3运算符重载函数238
11.4重载流插入和流提取运算符241
11.5数据的类型转换244
11.5.1用转换构造函数实现类型转换245
11.5.2用类型转换函数实现类型转换247
习题11250第12章多态与虚函数251
12.1多态性和绑定251
12.2虚函数254
12.2.1虚函数的定义254
12.2.2虚析构函数255
12.3纯虚函数与抽象类257
12.3.1纯虚函数257
12.3.2抽象类260
12.4动态绑定与虚函数表263
12.4.1多态类与非多态类263
12.4.2动态绑定的实现265
习题12267第13章模板268
13.1模板的引入268
13.2函数模板269
13.2.1函数模板的定义269
13.2.2函数模板的调用269
13.2.3函数模板的重载271
13.3类模板274
13.3.1类模板的定义和使用274
13.3.2类模板的继承275
13.4类模板应用275
13.4.1数组类模板275
13.4.2线性链表类模板278
习题13281第14章输入输出流和文件282
14.1输入输出与流282
14.2C++的流类和流对象283
14.3标准输入输出流283
14.3.1标准输出流284
14.3.2标准输入流285
14.3.3流成员函数287
14.4设定输入输出格式290
14.5文件处理294
14.5.1文件的打开和关闭294
14.5.2对ASCII码文件的读写296
14.5.3对二进制文件的读写298
习题14302第15章异常处理303
15.1异常处理的基本思路303
15.2C++异常处理的实现306
15.2.1简单异常处理306
15.2.2类类型异常处理309
习题15311第16章综合实例312
16.1用面向过程的方法设计人人对弈程序313
16.2用面向对象的方法设计人人对弈程序329
16.3扩展游戏程序343
习题16344第17章集成开发环境345
17.1Visual Studio 2010的安装与启动345
17.2Visual Studio 2010的操作界面346
17.3创建和打开项目349
17.3.1创建项目349
17.3.2在解决方案中新建项目350
17.3.3在项目中添加项351
17.3.4打开项目355
17.3.5编辑源程序356
17.4生成和运行项目356
17.5调试程序357
习题17364附录AASCII码表365参考文献366
第1章C++入门1
1.1C++简介1
1.1.1C++的产生与发展1
1.1.2C++的特点2
1.2简单的C++程序3
1.2.1C++程序结构3
1.2.2输入与输出5
1.2.3注释6
1.3C++程序的上机执行过程7
1.4程序设计语言介绍8
1.4.1机器语言8
1.4.2汇编语言9
1.4.3高级语言10第2章基本数据类型与表达式14
2.1字符集与标识符14
2.1.1字符集14
2.1.2标识符14
2.1.3关键字15
2.2基本数据类型16
2.2.1整型16
2.2.2字符型16
2.2.3布尔型17
2.2.4浮点型17
2.3常量18
2.3.1数值型常量18
2.3.2字符型常量19
2.4变量20
2.4.1变量20
2.4.2常变量21
2.5运算符与表达式23
2.5.1算术运算符与算术表达式23
2.5.2赋值运算符与赋值表达式24
2.5.3逗号运算符与逗号表达式24
2.5.4自增自减运算符25
2.5.5类型转换25
2.5.6位运算符与位运算表达式27
2.6计算机中的数据表示29
2.6.1计算机中的数制29
2.6.2数值型数据的表示31
2.6.3字符型数据的编码表示33第3章语句与结构化程序设计34
3.1功能语句与顺序结构程序设计34
3.1.1赋值语句34
3.1.2空语句34
3.1.3复合语句34
3.1.4顺序结构程序设计34
3.2分支语句与分支结构程序设计35
3.2.1关系表达式和逻辑表达式35
3.2.2if语句38
3.2.3if…else语句38
3.2.4条件运算符与条件表达式40
3.2.5switch语句41
3.3循环语句与循环结构程序设计42
3.3.1for循环语句43
3.3.2do…while循环语句45
3.3.3while循环语句47
3.3.4循环语句的嵌套48
3.4转移语句49
3.4.1break语句49
3.4.2continue语句49
3.4.3goto语句50
3.5程序举例51
3.6算法与程序设计58
3.6.1算法设计与分析58
3.6.2程序设计风格61第4章数组与字符串62
4.1数组的定义与使用62
4.1.1一维数组的定义与使用62
4.1.2二维数组的定义与使用63
4.2数组的初始化65
4.3数组应用举例66
4.3.1一维数组应用67
4.3.2二维数组应用72
4.4字符串75
4.4.1字符串变量的定义与使用75
4.4.2字符串变量的输入输出76
4.4.3字符串运算77
4.4.4字符串数组78
4.5字符数组80
4.6动态数组81
4.7静态数组访问的下标越界问题83第5章函数84
5.1函数定义84
5.2函数调用与函数声明85
5.2.1函数调用85
5.2.2函数声明86
5.3函数的参数传递88
5.3.1值传递88
5.3.2引用传递89
5.3.3函数的默认形参值90
5.4函数的嵌套与递归91
5.4.1函数嵌套92
5.4.2函数递归92
5.5数组作函数参数95
5.5.1数组元素作函数参数95
5.5.2一维数组名作函数参数96
5.5.3二维数组名作函数参数97
5.6内联函数98
5.7重载函数99
5.8系统函数101第6章指针103
6.1指针变量103
6.1.1内存单元地址103
6.1.2指针变量的定义104
6.2指针的赋值与运算104
6.2.1指针的赋值104
6.2.2指针的运算105
6.3指针作为函数参数107
6.4指针与数组108
6.4.1数组的地址108
6.4.2指针与一维数组108
6.4.3指针与二维数组109
6.4.4指针数组111
6.5动态内存分配112
6.6函数指针115第7章自定义数据类型119
7.1结构体类型119
7.1.1结构体类型的定义119
7.1.2结构体变量的定义与初始化120
7.1.3结构体变量的引用121
7.2结构体应用123
7.2.1结构体数组123
7.2.2结构体和指针125
7.2.3结构体和函数127
7.3共用体130
7.3.1共用体的定义131
7.3.2共用体的应用132
7.4链表133
7.4.1线性表133
7.4.2线性链表134
7.4.3线性链表的操作135
7.5枚举类型140
7.5.1枚举类型和枚举变量的定义140
7.5.2枚举变量的赋值和引用141
7.5.3枚举变量值的输入与输出141第8章C++程序结构144
8.1C++程序构成144
8.2预处理命令145
8.2.1宏定义145
8.2.2文件包含146
8.2.3条件编译148
8.3变量的作用域151
8.3.1局部变量151
8.3.2全局变量151
8.4变量的存储类别152
8.4.1局部动态变量153
8.4.2局部寄存器变量154
8.4.3局部静态变量154
8.4.4外部变量声明155
8.5内部函数与外部函数157
8.5.1内部函数157
8.5.2外部函数158第9章类和对象160
9.1面向对象程序设计概述160
9.1.1面向对象的概念160
9.1.2面向对象程序设计的特点160
9.1.3面向对象与面向过程的区别161
9.2类和对象162
9.2.1类的定义162
9.2.2对象的定义165
9.2.3对象成员的访问166
9.3构造函数168
9.3.1不带参数的构造函数168
9.3.2带参数的构造函数169
9.3.3带默认值的构造函数170
9.3.4带初始化表的构造函数171
9.3.5构造函数的重载173
9.4析构函数175
9.5复制构造函数178
9.5.1对象的赋值178
9.5.2对象的复制179
9.6对象数组183
9.7const对象和const成员185
9.8成员函数存储与this指针187
9.9类静态成员189
9.9.1静态数据成员189
9.9.2静态成员函数190
9.10友元函数与友元类192
9.10.1友元函数194
9.10.2友元类196第10章继承与派生197
10.1继承与派生的概念197
10.2派生类的声明198
10.2.1派生类的声明198
10.2.2派生类的构成199
10.3派生类成员的访问特性201
10.3.1公有继承201
10.3.2私有继承202
10.3.3保护继承202
10.3.4多级派生时的访问特性203
10.4派生类的构造函数和析构函数206
10.4.1简单派生类的构造函数207
10.4.2有子对象的派生类的构造函数209
10.4.3派生类的析构函数210
10.5基类与派生类的转换212
10.5.1派生类对象的值可以赋给基类对象212
10.5.2派生类对象可以作为基类对象使用213
10.6类的继承与组合214
10.7继承在软件开发中的作用215
10.8多基类继承218
10.8.1定义多基类继承218
10.8.2多继承派生类的构造函数220
10.8.3基类成员名冲突221
10.8.4虚基类222第11章运算符重载227
11.1运算符重载的实现227
11.2运算符重载规则231
11.3运算符重载函数232
11.4重载流插入和流提取运算符235
11.5数据的类型转换238
11.5.1用转换构造函数实现类型转换238
11.5.2用类型转换函数实现类型转换241第12章多态与虚函数245
12.1多态性和绑定245
12.2虚函数248
12.2.1虚函数的定义248
12.2.2虚析构函数249
12.3纯虚函数与抽象类251
12.3.1纯虚函数251
12.3.2抽象类254
12.4动态绑定与虚函数表257
12.4.1多态类与非多态类257
12.4.2动态绑定的实现259第13章模板261
13.1模板的引入261
13.2函数模板262
13.2.1函数模板的定义262
13.2.2函数模板的调用262
13.2.3函数模板的重载264
13.3类模板267
13.3.1类模板的定义和使用267
13.3.2类模板的继承268
13.4类模板应用268
13.4.1数组类模板268
13.4.2线性链表类模板271第14章输入输出流和文件275
14.1输入输出与流275
14.2C++的流类和流对象276
14.3标准输入输出流276
14.3.1标准输出流277
13.4.2标准输入流278
14.3.3流成员函数280
14.4设定输入输出格式283
14.5文件处理287
14.5.1文件的打开和关闭287
14.5.2对ASCII码文件的读写289
14.5.3对二进制文件的读写291第15章异常处理296
15.1异常处理的基本思路296
15.2C++异常处理的实现299
15.2.1简单异常处理299
15.2.2类类型异常处理302第16章综合实例305
16.1用面向过程的方法设计人人对弈程序306
16.2用面向对象的方法设计人人对弈程序322
16.3扩展游戏程序336第17章集成开发环境338
17.1Visual Studio 2010的安装与启动338
17.2Visual Studio 2010的操作界面339
17.3创建和打开项目342
17.3.1创建项目342
17.3.2在解决方案中新建项目343
17.3.3在项目中添加项344
17.3.4打开项目348
17.3.5编辑源程序349
17.4生成和运行项目349
17.5调试程序350附录AASCII码表357参考文献358