C++从入门到精通(附CD光盘1张)(程序员书库)

分类: 图书,计算机与互联网,程序语言与软件开发,语言与开发工具,C语言及其相关,
品牌: 徐兆元
基本信息·出版社:化学工业出版社
·页码:408 页
·出版日期:2009年09月
·ISBN:7122062937/9787122062932
·条形码:9787122062932
·包装版本:第1版
·装帧:平装
·开本:16
·正文语种:中文
·丛书名:程序员书库
产品信息有问题吗?请帮我们更新产品信息。
内容简介C++是目前最流行且被广泛应用的程序设计语言之一,它的高效率和面向对象技术备受推崇。《C++从入门到精通》由浅入深,循序渐进地讲解了C++的各个知识点,并结合了一些实用的知识讲解了C++的主要应用。全书内容包括C++的发展历史和特点、基本元素与结构、基本数据类型、语句与控制结构、数组、指针与引用、自义类型与字符串、面向对象设计思想和类、重载技术、继承与派生技术、虚函数与多态性、模板与命名空间、标准模板库、输入输出体系、异常处理、API编程和MFC框架、多线程处理、链接库、基本算法、数据结构、数据库编程、网络编程等。为了使读者能够真正掌握C++的应用,书中最后两章通过建立两个实用的程序来向读者介绍C++的具体应用。《C++从入门到精通》适合C++初学者、具有一定C语言或者C++语言基础的中级学习者、学习C++的大中专院校的学生,同时也可以作为院校C++教学工作者的教学参考书。
编辑推荐《C++从入门到精通》由化学工业出版社出版。
《C++从入门到精通》特色:
起点低,即使没有任何编程基础,也能轻松掌握
重点讲解C++基础知识,还涉及了算法和数据结构等内容
对代码进行了详细注释,阅读起来很容易理解
全书提供了300个实例和2个综合案例,非常实用
目录
第一篇 基础篇
第1章 概述 2
1.1 计算机程序设计语言概述 2
1.2 了解C++ 3
1.2.1 发展历史和特点 3
1.2.2 程序的构成 3
1.3 开发环境 4
1.3.1 开发系统组成和开发流程 4
1.3.2 典型C++开发环境 6
1.3.3 安装Visual C++ 6.0 7
1.3.4 第一个C++程序:Hello World! 10
1.4 小结 12
第2章 基本元素与结构 13
2.1 常量和变量 13
2.1.1 常量 13
2.1.2 变量 15
2.2 基本元素 15
2.2.1 关键字 16
2.2.2 标识符 16
2.2.3 运算符 17
2.2.4 标点符号 21
2.3 基本结构 21
2.3.1 main函数 21
2.3.2 预处理命令 22
2.3.3 基本输入输出 23
2.3.4 注释 25
2.4 本章实例 26
2.5 小结 27
第3章 基本数据类型 28
3.1 数据类型分类 28
3.2 整型类型 28
3.3 实型类型 30
3.4 字符类型 32
3.5 逻辑类型 34
3.6 变量存储限定符 34
3.7 基本数据类型的转换 35
3.7.1 系统自动转换 35
3.7.2 强制类型转换 36
3.8 本章实例 37
3.9 小结 38
第4章 语句与控制结构 39
4.1 表达式 39
4.2 流程图 40
4.3 顺序结构 40
4.4 选择结构 41
4.4.1 if语句 41
4.4.2 switch语句 42
4.5 循环结构 44
4.5.1 利用goto语句和if语句构成循环 44
4.5.2 while语句 45
4.5.3 do-while语句 46
4.5.4 for语句 47
4.5.5 break语句 49
4.5.6 continue语句 50
4.6 本章实例 51
4.7 小结 53
第5章 数组 54
5.1 一维数组的概念和存储 54
5.1.1 一维数组的定义和初始化 54
5.1.2 一维数组的引用 55
5.1.3 一维数组内存结构和寻址 56
5.2 二维数组 57
5.2.1 二维数组的定义和初始化 57
5.2.2 二维数组的引用 58
5.2.3 二维数组内存结构和寻址 59
5.3 多维数组 59
5.3.1 多维数组的定义和初始化 59
5.3.2 多维数组的引用 60
5.3.3 多维数组内存结构和寻址 60
5.4 字符数组 61
5.4.1 字符数组的定义和初始化 61
5.4.2 字符数组的引用 61
5.4.3 利用字符数组操作字符串 62
5.5 本章实例 63
5.6 小结 64
第6章 函数 65
6.1 函数的概念和定义 65
6.2 函数原型 66
6.3 函数参数 68
6.3.1 函数参数传递方式 68
6.3.2 main( )函数的参数 69
6.3.3 省略符形参 70
6.4 函数作用域规则 70
6.4.1 作用域 70
6.4.2 局部变量 71
6.4.3 全局变量 71
6.5 函数的嵌套与递归调用 72
6.6 内联函数 73
6.7 函数的模板 75
6.8 本章实例 75
6.9 小结 77
第7章 指针与引用 78
7.1 指针的概念和基本用法 78
7.1.1 指针的概念 78
7.1.2 指针变量的声明 78
7.1.3 地址运算符 79
7.1.4 指针的赋值 80
7.1.5 指针运算 81
7.1.6 const指针 82
7.1.7 void指针 84
7.1.8 指针的指针 84
7.2 指针与数组 85
7.2.1 指针数组 85
7.2.2 数组名以及下标和指针的关系 86
7.3 指针与函数 88
7.3.1 指针作为函数参数 88
7.3.2 指针函数 90
7.3.3 指向函数的指针 91
7.4 指针和动态内存的分配 93
7.4.1 C++内存分配机制 93
7.4.2 C++风格的动态内存分配方法 94
7.4.3 C风格的动态内存分配方法 99
7.4.4 动态内存分配陷阱 100
7.4.5 动态内存的传递 102
7.5 引用 104
7.5.1 引用的概念和基本用法 104
7.5.2 引用作为函数参数 106
7.5.3 引用作为返回值 107
7.6 本章实例 108
7.7 小结 109
第8章 自定义类型与字符串 110
8.1 结构体 110
8.1.1 结构体的概念和声明 110
8.1.2 结构体变量的定义 111
8.1.3 结构体变量的初始化 113
8.1.4 结构体的使用 114
8.2 共用体 116
8.2.1 共用体类型及其变量 117
8.2.2 共用体的使用 118
8.3 枚举类型 119
8.3.1 枚举类型与枚举变量 120
8.3.2 枚举类型的使用 120
8.4 类型定义 121
8.5 字符串 122
8.5.1 C风格字符串处理 122
8.5.2 用指针操作字符串 123
8.5.3 C++字符串处理 126
8.5.4 常用字符串的操作函数 128
8.6 本章实例 130
8.7 小结 133
第二篇 面向对象篇
第9章 面向对象设计思想和类 136
9.1 程序设计思想 136
9.1.1 结构化程序设计思想 136
9.1.2 面向对象程序设计思想 137
9.2 类 138
9.2.1 类的定义和组成 138
9.2.2 类成员的访问控制 141
9.2.3 类实例和类成员访问 143
9.2.4 类的作用域和对象的生存周期 146
9.2.5 this指针 146
9.2.6 静态成员 147
9.2.7 常成员 151
9.3 构造函数和析构函数 153
9.3.1 构造函数 153
9.3.2 拷贝构造函数 157
9.3.3 默认拷贝构造函数 159
9.3.4 浅拷贝和深拷贝 161
9.3.5 析构函数 164
9.4 类的组合 166
9.4.1 类的组合的概念 166
9.4.2 组合类的构造函数和析构函数 167
9.4.3 组合类的初始化 168
9.5 友元函数和友元类 170
9.5.1 友元的需求性和定义 170
9.5.2 友元函数 171
9.5.3 友元类 174
9.6 本章实例 176
9.7 小结 178
第10章 重载技术 179
10.1 重载函数 179
10.1.1 重载函数的概念和定义 179
10.1.2 重载函数的使用 180
10.2 运算符重载 181
10.2.1 运算符重载的需求 181
10.2.2 运算符重载的基本方法和规则 182
10.2.3 增减量运算符的重载 185
10.2.4 转换运算符的重载 187
10.2.5 赋值运算符的重载 189
10.3 本章实例 190
10.4 小结 192
第11章 继承与派生 193
11.1 继承与派生 193
11.1.1 继承与派生的概念 193
11.1.2 派生类的声明 194
11.1.3 生成派生类的步骤 195
11.2 继承中的访问控制 198
11.2.1 公用继承的访问控制 198
11.2.2 私有继承的访问控制 199
11.2.3 保护继承的访问控制 201
11.3 派生类的构造函数和析构函数 202
11.3.1 派生类的构造函数 202
11.3.2 派生类的析构函数 205
11.4 基类与派生类的相互作用 207
11.4.1 派生类成员的标识和访问 207
11.4.2 基类和派生类赋值规则 209
11.5 多重继承特性 210
11.5.1 多重继承引起的二义性问题 210
11.5.2 虚拟继承和虚基类 210
11.6 本章实例 212
11.7 小结 218
第12章 虚函数与多态性 219
12.1 多态性 219
12.1.1 多态的概念和类型 219
12.1.2 多态的实现方式 220
12.2 虚函数 220
12.2.1 虚函数的概念和定义 220
12.2.2 虚函数的使用规则 225
12.3 纯虚函数与抽象类 226
12.3.1 纯虚函数 226
12.3.2 抽象类和抽象基类 226
12.4 本章实例 228
12.5 小结 234
第13章 模板与命名空间 235
13.1 模板的概念与作用 235
13.1.1 模板的概念 235
13.1.2 模板的作用 235
13.2 函数模板 236
13.2.1 函数模板的定义和使用 237
13.2.2 重载模板函数 239
13.3 类模板 240
13.4 命名空间 245
13.4.1 程序中的命名冲突分析 245
13.4.2 命名空间的概念 247
13.4.3 命名空间的使用 247
13.4.4 标准命名空间std 250
13.4.5 C++头文件的使用 250
13.5 本章实例 251
13.6 小结 254
第14章 标准模板库 255
14.1 泛型化编程与STL介绍 255
14.1.1 泛型化编程的概念 255
14.1.2 C++标准库与STL的内容 255
14.2 STL的使用 256
14.2.1 容器 257
14.2.2 迭代器 259
14.2.3 算法 260
14.3 本章实例 262
14.4 小结 266
第三篇 应用篇
第15章 输入输出体系 268
15.1 流的概念 268
15.1.1 C语言中I/O的弊端 268
15.1.2 流类 269
15.2 流对象和格式化输出 271
15.2.1 预定义的流对象 271
15.2.2 流格式化输出 272
15.3 重载流运算符 275
15.3.1 流运算符重载概述 275
15.3.2 插入运算符重载 276
15.3.3 提取运算符重载 277
15.4 文件操作 278
15.4.1 文件概述 278
15.4.2 文件操作基础 279
15.4.3 打开和关闭文件 279
15.4.4 文本文件输入输出 281
15.4.5 二进制文件输入输出 286
15.4.6 文件定位 288
15.5 本章实例 289
15.6 小结 297
第16章 异常处理 298
16.1 异常概述 298
16.1.1 异常的概念和分类 298
16.1.2 异常现象的举例 299
16.2 异常处理机制 299
16.2.1 异常处理的任务 300
16.2.2 异常处理基本思想 300
16.2.3 异常处理的组成 301
16.2.4 异常处理的执行过程 303
16.3 析构函数与异常处理 305
16.4 本章实例 307
16.5 小结 309
第17章 API编程和MFC框架简介 310
17.1 API编程介绍 310
17.1.1 认识API的编程 310
17.1.2 API函数的概念和作用 313
17.1.3 Windows API分类 314
17.1.4 Windows API基本术语 314
17.1.5 Windows API基本使用 316
17.2 MFC框架简介 318
17.2.1 认识MFC的程序 318
17.2.2 MFC的编程框架 319
17.2.3 MFC的模板 321
17.2.4 MDI应用程序的构成 321
17.3 小结 323
第18章 多线程处理 324
18.1 进程和线程 324
18.1.1 进程和线程的概念 324
18.1.2 线程的优先级 325
18.1.3 线程运行状态 325
18.2 线程的操作 326
18.2.1 线程的建立 326
18.2.2 线程的优先级设定 330
18.2.3 线程的挂起、恢复 330
18.2.4 线程的结束 332
18.3 本章实例 333
18.4 小结 335
第19章 链接库 336
19.1 链接库概述 336
19.2 静态链接库 337
19.2.1 静态链接库的编写 337
19.2.2 静态链接库的使用 339
19.3 动态链接库 340
19.3.1 DLL文件的编写 340
19.3.2 导出DLL资源 342
19.4 动态链接库的使用 345
19.4.1 隐式链接 345
19.4.2 显式链接 346
19.5 小结 348
第四篇 开发篇
第20章 基本算法 350
20.1 算法的概念和特征 350
20.1.1 算法的概念 350
20.1.2 算法的特征 350
20.1.3 算法的设计要求和描述方法 350
20.1.4 算法的衡量 351
20.2 常用算法 351
20.2.1 递推法 352
20.2.2 递归法 352
20.2.3 回溯法 353
20.2.4 贪婪法 354
20.2.5 分治法 355
20.2.6 动态规划法 356
20.2.7 迭代法 356
20.2.8 穷举法 357
20.3 小结 358
第21章 数据结构 359
21.1 线性表及其应用 359
21.2 链表及其应用 360
21.3 堆栈及其应用 362
21.4 队列及其应用 363
21.5 特殊矩阵、广义表及其应用 363
21.6 二叉树及其应用 364
21.7 散列结构及其应用 366
21.8 图及其应用 367
21.9 小结 368
第22章 数据库编程 369
22.1 概述 369
22.1.1 数据库和数据库系统 369
22.1.2 常见数据库访问技术 370
22.2 数据访问接口ODBC 371
22.2.1 ODBC概述 371
22.2.2 ODBC API编程 372
22.3 MFC的ODBC编程 375
22.3.1 CDatabase和CRecordSet类介绍 376
22.3.2 数据查询 378
22.3.3 参数化数据查询 379
22.3.4 新建数据 379
22.3.5 数据删除 380
22.3.6 数据更新 380
22.3.7 直接执行SQL语句 381
22.4 小结 381
第23章 网络编程 382
23.1 网络通信 382
23.1.1 网络类型 382
23.1.2 网络拓扑结构 382
23.2 网络通信协议 384
23.2.1 TCP/IP结构 384
23.2.2 UDP协议 385
23.2.3 相关术语 385
23.3 SOCKET网络编程接口 386
23.3.1 Socket模型 386
23.3.2 Socket的C/S编程方式 386
23.3.3 C++下的Socket 387
23.3.4 利用Socket建立服务器端程序 389
23.3.5 利用Socket建立客户端程序 391
23.4 小结 392
第24章 利用ADO实现简单的学生信息管理系统 393
24.1 ADO简介 393
24.1.1 ADO概述 393
24.1.2 MFC的ADO编程 394
24.1.3 ADO操作数据库的基本步骤 395
24.2 程序的需求 395
24.3 程序的界面设计 396
24.4 程序的数据库 396
24.5 核心程序实现分析 397
24.6 小结 400
第25章 火车信息查询系统 401
25.1 程序需求 401
25.2 程序界面 401
25.3 服务端程序 402
25.3.1 服务器通信类 402
25.3.2 建立处理线程 403
25.3.3 火车信息处理 404
25.3.4 发送和接收 405
25.4 客户端程序 406
25.4.1 连接服务器 406
25.4.2 发送车次信息 407
25.4.3 接收服务器返回信息 407
25.5 小结 408
……[看更多目录]
序言21世纪是科学技术迅速发展的时代,信息技术的飞速发展带来社会的巨大进步。计算机技术在信息技术发展中起到了关键的作用,各种先进的软件系统层出不穷,由之带来了巨大的社会价值。软件开发的不断发展也使编程语言的种类越来越丰富。一直以来,C++语言作为最流行、应用最广泛的语言已经被应用到各个行业的软件开发中。特别是在一些对应用程序的效率要求比较高的行业中,如通信、控制、嵌入式设计和图形软件设计等,C++技术的应用更加广泛。
C++语言的前身是C语言。C语言从诞生至现在已经有30多年,C++语言诞生(1983年C++第一次投入使用)也将近30年。这说明C/C++语言是禁得起时间考验的语言,越来越多的人都在不断学习和研究C++语言。从笔者实际的教学经验和参加项目开发的过程中,学习者普遍反映C++是一门十分难掌握的语言。笔者经过调查,发现C++语言之所以“难学”,表现在以下几点。
(1)C++本身确实是比较难以理解的语言,特别是面向对象思想,并不是每个人立即就能理解的。要做到深入理解,必须坚持学习和运用C++技术,这是大部分人做不到的。
(2)目前与C++技术相关的工具过多,而每个工具又具有自己的特点,导致学习者无法分清哪些技术是C++语言本身的,哪些是和编译器相关的。这样下去,只会使学习者越来越糊涂,分不清方向。
(3)目前市场上的C++书籍,有些书的内容过深,不适合初学者使用。
基于以上几点,笔者认为只要克服这些弊端,完全可以学好C++。对于第(1)点,读者只要能做到坚持不懈,就可以克服;对于第(2)点,只要读者选定一个固定的C++编译系统去学习,当熟悉了这个编译系统的应用后,即可触类旁通;对于第(3)点,需要有一本适合于初学者和中等水平者阅读和参考的书籍即可。
本书编写的目的就是为C++初学者和中等水平者提供良好的学习和参考工具。本书选定经典而完善的开发工具Visual C++ 6.0为编译器,结合C++基础语言和重要应用向读者逐一讲解C++的知识点。相信读者在阅读完本书后,即可独立进行常规的应用开发,并为深入学习更高级的C++技术作好铺垫。
文摘插图:

第一篇 基础篇
第1章 Visual C++集成开发环境
C++是一种优秀的面向对象程序设计语言。它从C语言的基础上发展而来,但又比c语言更容易学习和掌握。C++以其独特的语言机制在计算机科学的各个领域中得NT广泛的应用。C++完美地体现了面向对象的各种特性。通过本章的学习,读者可以了解C++语言的产生及特点,能够基本掌握安装和配置Visual C++6.0开发环境的方法,并理解C++程序的开发过程。
1.1 计算机程序设计语言概述
计算机是20世纪40年代诞生的,目前得到了迅猛的发展,已经深入到了各个行业中。随着计算机的产生和发展,程序设计也诞生并发展。
软件的作用是控制和指导如何利用硬件系统来处理信息,而程序设计的目的就是开发出这些软件。计算机程序设计语言是具有特定的语法、词法等规则的系统。程序设计语言首先通过特定的描述方法来描述世界,再将这些描述传递给计算机,以达到计算机识别世界的目的。
在计算机硬件中,惟一识别的是二进制数字(0和1)。计算机的指令都是一串二进制代码,所以在计算机诞生初期,人们是通过直接设计二进制代码来设计程序的。这种设计方法是最原始的,设计出的二进制代码组成的语言称为机器语言。
机器语言是极其难设计、难阅读和难理解的,所以学习和记忆起来就更加困难。不久,设计人员设计出了汇编语言。研究人员把机器指令翻译成为了一些容易被人们阅读和记忆的助记符,如ADD表示相加、MOV表示传送数据等。这使得程序设计比使用机器语言简单、易懂一些。