图书目录

第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