《C++程序设计》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:刘开军,范颖编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2004
  • ISBN:7302087369
  • 页数:486 页
图书介绍:本书是一本C++语言的入门教程,该书全面介绍了C++的语法和结构、面向对象等内容,叙述由浅入深,内容详实,重点突出。既适合于课程教学,也可用于自学。与现有的C++教程相比,本书的特点在于讲解C++语言的过程中,参考等级考试对C++的要求,以之为重点,使得读者在学好语言的同时,为顺利通过等级考试打下基础。另外,本书从语言风格、章节安排、程序举例等多方面为读者考虑,确是初学者不可多得的一本优秀教材。

第1篇 基本知识 3

第1章 C++的初步知识 3

1.1 从C到C++ 3

1.2最简单的C++程序 5

1.3 C++程序的构成和书写形式 12

1.4 C++程序的编写和实现 13

1.5关于C++上机实践 15

习题 16

第2章 数据类型与表达式 19

2.1 C++的数据类型 19

2.2常量 21

2.2.1什么是常量 21

2.2.2数值常量 21

2.2.3字符常量 23

2.2.4符号常量 26

2.3变量 27

2.3.1什么是变量 27

2.3.2变量名规则 28

2.3.3定义变量 28

2.3.4为变量赋初值 29

2.3.5常变量 30

2.4 C++的运算符 31

2.5算术运算符与算术表达式 32

2.5.1基本的算术运算符 32

2.5.2算术表达式和运算符的优先级与结合性 32

2.5.3表达式中各类数值型数据间的混合运算 32

2.5.4自增和自减运算符 33

2.5.5强制类型转换运算符 35

2.6赋值运算符与赋值表达式 36

2.6.1赋值运算符 36

2.6.2赋值过程中的类型转换 36

2.6.3复合的赋值运算符 38

2.6.4赋值表达式 39

2.7逗号运算符与逗号表达式 40

习题 41

第2篇 面向过程的程序设计 45

第3章 程序设计初步 45

3.1面向过程的程序设计和算法 45

3.1.1算法的概念 45

3.1.2算法的表示 46

3.2 C++程序和语句 47

3.3赋值语句 49

3.4 C++的输入与输出 50

3.4.1输入流与输出流的基本操作 51

3.4.2在输入流与输出流中使用控制符 53

3.4.3用getchar和putchar函数进行字符的输入和输出 55

3.4.4用scanf和printf函数进行输入和输出 57

3.5编写顺序结构的程序 58

3.6关系运算和逻辑运算 58

3.6.1关系运算和关系表达式 59

3.6.2逻辑常量和逻辑变量 60

3.6.3逻辑运算和逻辑表达式 61

3.7选择结构和if语句 63

3.7.1 if语句的3种形式 64

3.7.2 if语句的嵌套 66

3.8条件运算符和条件表达式 67

3.9多分支选择结构和switch语句 68

3.10编写选择结构的程序 70

3.11循环结构和循环语句 73

3.11.1用while语句构成循环 73

3.11.2用do-while语句构成循环 74

3.11.3用for语句构成循环 75

3.11.4几种循环的比较 78

3.12循环的嵌套 79

3.13 break语句和continue语句 79

3.14编写循环结构的程序 80

习题 85

第4章 函数与预处理 88

4.1概述 88

4.2定义函数的一般形式 90

4.2.1定义无参函数的一般形式 90

4.2.2定义有参函数的一般形式 91

4.3函数参数和函数的值 91

4.3.1形式参数和实际参数 91

4.3.2函数的返回值 93

4.4函数的调用 94

4.4.1函数调用的一般形式 94

4.4.2函数调用的方式 94

4.4.3对被调用函数的声明和函数原型 95

4.5内置函数 97

4.6函数的重载 99

4.7函数模板 102

4.8有默认参数的函数 103

4.9函数的嵌套调用 105

4.10函数的递归调用 109

4.11局部变量和全局变量 112

4.11.1局部变量 112

4.11.2全局变量 113

4.12变量的存储类别 115

4.12.1动态存储方式与静态存储方式 115

4.12.2 自动变量 116

4.12.3用static声明静态局部变量 116

4.12.4用register声明寄存器变量 119

4.12.5用extern声明外部变量 119

4.12.6用static声明静态外部变量 121

4.13变量属性小结 122

4.14关于变量的声明和定义 124

4.15内部函数和外部函数 125

4.15.1内部函数 125

4.15.2外部函数 125

4.16预处理命令 127

4.16.1宏定义 127

4.16.2“文件包含”处理 128

4.16.3条件编译 131

习题 132

第5章 数组 134

5.1数组的概念 134

5.2一维数组的定义和引用 135

5.2.1定义一维数组 135

5.2.2引用一维数组的元素 135

5.2.3一维数组的初始化 136

5.2.4一维数组程序举例 137

5.3二维数组的定义和引用 139

5.3.1定义二维数组 139

5.3.2二维数组的引用 140

5.3.3二维数组的初始化 140

5.3.4二维数组程序举例 142

5.4用数组名作函数参数 144

5.5字符数组 148

5.5.1字符数组的定义和初始化 148

5.5.2字符数组的赋值与引用 149

5.5.3字符串和字符串结束标志 150

5.5.4字符数组的输入输出 151

5.5.5字符串处理函数 152

5.5.6字符数组应用举例 155

5.6 C++处理字符串的方法——字符串类与字符串变量 156

5.6.1字符串变量的定义和引用 156

5.6.2字符串变量的运算 157

5.6.3字符串数组 158

5.6.4字符串运算举例 159

习题 162

第6章 指针 164

6.1指针的概念 164

6.2变量与指针 166

6.2.1定义指针变量 166

6.2.2引用指针变量 167

6.2.3指针作为函数参数 170

6.3数组与指针 174

6.3.1指向数组元素的指针 174

6.3.2用指针变量作函数参数接收数组地址 178

6.3.3多维数组与指针 180

6.4字符串与指针 184

6.5函数与指针 186

6.5.1用函数指针变量调用函数 186

6.5.2用指向函数的指针作函数参数 187

6.6返回指针值的函数 188

6.7指针数组和指向指针的指针 188

6.7.1指针数组的概念 188

6.7.2指向指针的指针 190

6.8有关指针的数据类型和指针运算的小结 192

6.8.1有关指针的数据类型的小结 192

6.8.2指针运算小结 193

6.9引用 194

6.9.1什么是变量的引用 194

6.9.2引用的简单使用 195

6.9.3引用作为函数参数 195

习题 199

第7章 自定义数据类型 201

7.1结构体类型 201

7.1.1结构体概述 201

7.1.2结构体类型变量的定义方法及其初始化 202

7.1.3结构体变量的引用 205

7.1.4结构体数组 207

7.1.5指向结构体变量的指针 211

7.1.6结构体类型数据作为函数参数 214

7.1.7动态分配和撤销内存的运算符new和delete 217

7.2共用体 219

7.2.1共用体的概念 219

7.2.2对共用体变量的访问方式 220

7.2.3共用体类型数据的特点 220

7.3枚举类型 222

7.4用typedef声明类型 225

习题 227

第3篇 基于对象的程序设计 231

第8章 类和对象 231

8.1 面向对象程序设计方法概述 231

8.1.1什么是面向对象的程序设计 231

8.1.2面向对象程序设计的特点 234

8.1.3类和对象的作用 235

8.1.4面向对象的软件开发 236

8.2类的声明和对象的定义 238

8.2.1类和对象的关系 238

8.2.2声明类类型 238

8.2.3定义对象的方法 240

8.2.4类和结构体类型的异同 242

8.3类的成员函数 243

8.3.1成员函数的性质 243

8.3.2在类外定义成员函数 244

8.3.3 inline成员函数 245

8.3.4成员函数的存储方式 246

8.4对象成员的引用 248

8.4.1通过对象名和成员运算符访问对象中的成员 248

8.4.2通过指向对象的指针访问对象中的成员 249

8.4.3通过对象的引用变量来访问对象中的成员 249

8.5类的封装性和信息隐蔽 249

8.5.1公用接口与私有实现的分离 249

8.5.2类声明和成员函数定义的分离 251

8.5.3面向对象程序设计中的几个名词 254

8.6类和对象的简单应用举例 254

习题 261

第9章 关于类和对象的进一步讨论 263

9.1构造函数 263

9.1.1对象的初始化 263

9.1.2构造函数的作用 264

9.1.3带参数的构造函数 266

9.1.4用参数初始化表对数据成员初始化 267

9.1.5构造函数的重载 267

9.1.6使用默认参数的构造函数 269

9.2析构函数 272

9.3调用构造函数和析构函数的顺序 274

9.4对象数组 275

9.5对象指针 277

9.5.1指向对象的指针 277

9.5.2指向对象成员的指针 278

9.5.3 this指针 281

9.6共用数据的保护 282

9.6.1常对象 283

9.6.2常对象成员 284

9.6.3指向对象的常指针 285

9.6.4指向常对象的指针变量 285

9.6.5对象的常引用 289

9.6.6 const型数据的小结 290

9.7对象的动态建立和释放 290

9.8对象的赋值和复制 291

9.8.1对象的赋值 291

9.8.2对象的复制 293

9.9静态成员 295

9.9.1静态数据成员 296

9.9.2静态成员函数 298

9.10友元 301

9.10.1友元函数 301

9.10.2友元类 305

9.11类模板 306

习题 310

第10章 运算符重载 314

10.1什么是运算符重载 314

10.2运算符重载的方法 316

10.3重载运算符的规则 318

10.4运算符重载函数作为类成员函数和友元函数 320

10.5重载双目运算符 323

10.6重载单目运算符 328

10.7重载流插入运算符和流提取运算符 331

10.7.1重载流插入运算符“<<” 331

10.7.2重载流提取运算符“>>” 333

10.8不同类型数据间的转换 335

10.8.1标准类型数据间的转换 335

10.8.2转换构造函数 336

10.8.3类型转换函数 338

习题 343

第4篇 面向对象的程序设计 347

第11章 继承与派生 347

11.1继承与派生的概念 347

11.2派生类的声明方式 350

11.3派生类的构成 351

11.4派生类成员的访问属性 352

11.4.1公用继承 353

11.4.2私有继承 355

11.4.3保护成员和保护继承 358

11.4.4多级派生时的访问属性 361

11.5派生类的构造函数和析构函数 363

11.5.1简单的派生类的构造函数 363

11.5.2有子对象的派生类的构造函数 366

11.5.3多层派生时的构造函数 369

11.5.4派生类构造函数的特殊形式 372

11.5.5派生类的析构函数 372

11.6多重继承 373

11.6.1声明多重继承的方法 373

11.6.2多重继承派生类的构造函数 373

11.6.3多重继承引起的二义性问题 376

11.6.4虚基类 379

11.7基类与派生类的转换 384

11.8继承与组合 388

11.9继承在软件开发中的重要意义 389

习题 390

第12章 多态性与虚函数 395

12.1多态性的概念 395

12.2一个典型的例子 396

12.3虚函数 401

12.3.1虚函数的作用 401

12.3.2静态关联与动态关联 405

12.3.3在什么情况下应当声明虚函数 406

12.3.4虚析构函数 407

12.4纯虚函数与抽象类 408

12.4.1纯虚函数 408

12.4.2抽象类 409

12.4.3应用实例 410

习题 416

第13章 输入输出流 417

13.1 C++的输入和输出 417

13.1.1输入输出的含义 417

13.1.2 C++的I/O对C的发展——类型安全和可扩展性 417

13.1.3 C++的输入输出流 418

13.2标准输出流 422

13.2.1 cout,cerr和clog流 422

13.2.2格式输出 425

13.2.3用流成员函数put输出字符 429

13.3标准输入流 430

13.3.1 cin流 430

13.3.2用于字符输入的流成员函数 432

13.3.3 istream类的其他成员函数 436

13.4文件操作与文件流 439

13.4.1文件的概念 439

13.4.2文件流类与文件流对象 440

13.4.3文件的打开与关闭 441

13.4.4对ASCII文件的操作 443

13.4.5对二进制文件的操作 448

13.5字符串流 453

习题 458

第14章 C++工具 459

14.1异常处理 459

14.1.1异常处理的任务 459

14.1.2异常处理的方法 460

14.1.3在函数声明中进行异常情况指定 467

14.1.4在异常处理中处理析构函数 467

14.2命名空间 469

14.2.1为什么需要命名空间 469

14.2.2什么是命名空间 473

14.2.3使用命名空间解决名字冲突 475

14.2.4使用命名空间成员的方法 477

14.2.5无名的命名空间 479

14.2.6标准命名空间std 479

14.3使用早期的函数库 480

习题 481

附录A 常用字符与ASCII代码对照表 483

附录B 运算符与结合性 484

参考文献 486