首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 图书频道 > 计算机与网络 > 程序设计 >

C++程序设计语言(斯特朗斯特鲁普著)(2)

2012-11-03 
  C++在C语言的基础上,增加了对面向对象编程、类属编程、数据抽象等技术的支持,还对C语言进行了非面向对象的扩充。使用C++语言进行程序设计可以获得可重用性、可靠性、连续性、访问控制、继承性以及多态性等优势。
商家名称 信用等级 购买信息 订购本书
C++程序设计语言(斯特朗斯特鲁普著) 去商家看看
C++程序设计语言(斯特朗斯特鲁普著) 去商家看看


第二部分 抽象机制
第10章 类 199
10.1 引言 199
10.2 类 199
10.2.1 成员函数 200
10.2.2 访问控制 201
10.2.3 构造函数 202
10.2.4 静态成员 203
10.2.5 类对象的复制 204
10.2.6 常量成员函数 205
10.2.7 自引用 205
10.2.8 结构和类 208
10.2.9 在类内部的函数定义 210
10.3 高效的用户定义类型 210
10.3.1 成员函数 212
10.3.2 协助函数 214
10.3.3 重载的运算符 215
10.3.4 具体类型的意义 215
10.4 对象 216
10.4.1 析构函数 216
10.4.2 默认构造函数 217
10.4.3 构造和析构 218
10.4.4 局部变量 218
10.4.5 自由存储 220
10.4.6 类对象作为成员 221
10.4.7 数组 223
10.4.8 局部静态存储 224
10.4.9 非局部存储 225
10.4.10 临时对象 226
10.4.11 对象的放置 228
10.4.12 联合 229
10.5 忠告 230
10.6 练习 230

第11章 运算符重载 233
11.1 引言 233
11.2 运算符函数 234
11.2.1 二元和一元运算符 235
11.2.2 运算符的预定义意义 236
11.2.3 运算符和用户定义类型 236
11.2.4 名字空间里的运算符 237
11.3 一个复数类型 238
11.3.1 成员运算符和非成员运算符 238
11.3.2 混合模式算术 239
11.3.3 初始化 240
11.3.4 复制 241
11.3.5 构造函数和转换 242
11.3.6 文字量 243
11.3.7 另一些成员函数 243
11.3.8 协助函数 244
11.4 转换运算符 245
11.4.1 歧义性 246
11.5 友元 248
11.5.1 友元的寻找 249
11.5.2 友元和成员 250
11.6 大型对象 251
11.7 基本运算符 253
11.7.1 显式构造函数 253
11.8 下标 255
11.9 函数调用 256
11.10 间接 257
11.11 增量和减量 259
11.12 一个字符串类 260
11.13 忠告 265
11.14 练习 265

第12章 派生类 268
12.1 引言 268
12.2 派生类 269
12.2.1 成员函数 271
12.2.2 构造函数和析构函数 272
12.2.3 复制 273
12.2.4 类层次结构 273
12.2.5 类型域 274
12.2.6 虚函数 276
12.3 抽象类 278
12.4 类层次结构的设计 280
12.4.1 一个传统的层次结构 280
12.4.2 抽象类 283
12.4.3 其他实现方式 285
12.4.4 对象创建的局部化 287
12.5 类层次结构和抽象类 289
12.6 忠告 289
12.7 练习 289

第13章 模板 292
13.1 引言 292
13.2 一个简单的String模板 293
13.2.1 定义一个模板 294
13.2.2 模板实例化 295
13.2.3 模板参数 296
13.2.4 类型等价 296
13.2.5 类型检查 297
13.3 函数模板 298
13.3.1 函数模板的参数 299
13.3.2 函数模板的重载 300
13.4 用模板参数描述策略 302
13.4.1 默认模板参数 303
13.5 专门化 304
13.5.1 专门化的顺序 306
13.5.2 模板函数的专门化 307
13.6 派生和模板 308
13.6.1 参数化和继承 309
13.6.2 成员模板 310
13.6.3 继承关系 311
13.7 源代码组织 312
13.8 忠告 314
13.9 练习 314

第14章 异常处理 316
14.1 错误处理 316
14.1.1 关于异常的其他观点 318
14.2 异常的结组 318
14.2.1 派生的异常 319
14.2.2 多个异常的组合 321
14.3 捕捉异常 321
14.3.1 重新抛出 322
14.3.2 捕捉所有异常 322
14.4 资源管理 324
14.4.1 构造函数和析构函数的使用 325
14.4.2 auto_ptr 326
14.4.3 告诫 328
14.4.4 异常和new 328
14.4.5 资源耗尽 329
14.4.6 构造函数里的异常 331
14.4.7 析构函数里的异常 332
14.5 不是错误的异常 333
14.6 异常的描述 334
14.6.1 对异常描述的检查 335
14.6.2 未预期的异常 336
14.6.3 异常的映射 336
14.7 未捕捉的异常 338
14.8 异常和效率 339
14.9 处理错误的其他方式 340
14.10 标准异常 342
14.11 忠告 344
14.12 练习 344

第15章 类层次结构 346
15.1 引言和概述 346
15.2 多重继承 346
15.2.1 歧义性解析 348
15.2.2 继承和使用声明 349
15.2.3 重复的基类 350
15.2.4 虚基类 352
15.2.5 使用多重继承 354
15.3 访问控制 357
15.3.1 保护成员 359
15.3.2 对基类的访问 360
15.4 运行时类型信息 361
15.4.1 dynamic_cast 363
15.4.2 在类层次结构中漫游 365
15.4.3 类对象的构造与析构 367
15.4.4 typeid和扩展的类型信息 368
15.4.5 RTTI的使用和误用 370
15.5 指向成员的指针 371
15.5.1 基类和派生类 373
15.6 自由存储 374
15.6.1 数组分配 375
15.6.2 虚构造函数 376
15.7 忠告 377
15.8 练习 377

第三部分 标准库
第16章 库组织和容器 381
16.1 标准库的设计 381
16.1.1 设计约束 382
16.1.2 标准库组织 383
16.1.3 语言支持 385
16.2 容器设计 386
16.2.1 专门化的容器和迭代器 386
16.2.2 有基类的容器 388
16.2.3 STL容器 391
16.3 向量 392
16.3.1 类型 393
16.3.2 迭代器 394
16.3.3 元素访问 395
16.3.4 构造函数 396
16.3.5 堆栈操作 399
16.3.6 表操作 401
16.3.7 元素定位 403
16.3.8 大小和容量 404
16.3.9 其他成员函数 406
16.3.10 协助函数 406
16.3.11 vector[bool] 407
16.4 忠告 407
16.5 练习 408

第17章 标准容器 409
第18章 算法和函数对象 449
第19章 迭代器和分配器 485
第20章 串 511
第21章 流 533
第22章 数值 578

第四部分 用C++ 做设计
第23章 开发和设计 607
第24章 设计和编程 635
第25章 类的作用 670
附录和索引
附录A 语法 695
附录B 兼容性 713
附录C 技术细节 724
附录D 现场 759
附录E 标准库的异常时安全性 815
索引 845

序言

Bjarne Stroustrup的《The C++ Programming Language》是有关C++语言的第一部著作。毫无疑问,它是关于C++语言及其程序设计的最重要著作,在此领域中的地位是无可替代的。《The C++ Programming Language》一书伴随着C++语言的发展演化而不断进步,经过第1版(1985年)、第2版(1991年),第3版(1998年),本书的英文原书是《The C++ Programming Language》第3版经过补充和修订后的“特别版(2000)”(对应于国内引进的影印本)。对于这个中译本,我想说的第一句话就是“来得太晚了”。
要学习C++语言和程序设计,要将C++应用于程序设计实践,本书自然是必读之书。这个“特别版”以标准化的C++语言为基础,讨论了C++的各种语言特征和有效使用这一语言的程序设计技术。书中也用了大量的篇幅,在标准库以及一般软件开发的环境下,讨论了使用C++语言编程和组织程序的许多高级技术。本书内容覆盖了C++语言及其程序设计的各个方面,其技术深度与广度是举世公认的。
然而,作者讨论的并不仅是C++语言及其程序设计。本书的讨论远远超出这一范围,第四部分用了大量的篇幅去讨论软件开发过程及其问题。即使是在介绍C++语言及其程序设计的具体问题时,作者也常在程序结构、设计和软件开发的大环境下,提出自己的许多认识。作者有很强的计算机科学与技术基础,在系统软件开发方面极富经验,他所提出的观点和意见值得每个在这个领域中工作的人的重视。
当然,重视并不是盲从。在Stroustrup的两本关于C++的重要著作(本书和《C++语言的设计与演化》(已由机械工业出版社出版))中,都有这样一句话使我印象深刻:希望读者带着一种健康的怀疑态度。看来这是作者深深铭刻在心的一种思想,也特别值得国内每个从事信息技术,或者努力向这个方向发展的人注意。从来就没有什么救世主,Stroustrup不是在传道,他只是在总结和论述自己在这个领域中工作的经验。请不要将本书中的东西作为教条,那也一定是本书作者所深恶痛绝的。
许多人说本书比较难读,这种说法有一定道理。真正理解本书的一般性内容需要花一些时间,融会贯通则更需要下功夫。理解本书的内容不仅需要去读它,还需要去实践。问题是,花这个时间值吗?作者在讨论C++语言的设计时提出了一个观点:你从C++语言中的收获大致与在学习实践这个语言的过程中所付出的努力成正比;而且C++是一个可以伴随你成长的语言。同样的话也适用于本书。如果你致力于将自己发展成一个职业的程序员,或者要在计算机方面的技术领域中长期工作下去,我认为,你从本书中的收获大致也会与你所花的时间成正比,这本书也是一本能够伴随你成长的书。

文摘

插图:



c++基本类型的某些方面是由实现确定的,例如int的大小(C.2节)。我总要指出这种依赖性,并常常提出应该避免它们,或者通过某些方式尽可能减小其影响的建议。为什么需要为这些东西操心呢?在各种各样的系统中或使用多种编译器去编程序的人们很注意这些事情,因为如果他们不这样做,那他们就会被迫去花时间寻找和纠正很隐蔽的错误。那些自称不关心移植性的人也确实常常像自己所说的那样去做,因为他们只使用一种系统,并认为自己能承担起如下看法:“这个语言不过就是我的编译器所实现的那种东西”。但是,这实际上是一种狭隘和短视的观点。如果你的程序是成功的,那么它就很可能需要移植,而这时某些人就必须去寻找并纠正那些依赖于实现的特征了。此外,程序经常需要为了同一个系统而用其他编译器来编译,甚至你最喜爱的编译器的未来版本在做某些事情时,也可能采用与目前的版本不同的方式。在写程序时,理解程序对实现的依赖性的影响并予以限制,比以后再去踩这个泥潭要容易得多。
限制依赖于实现的语言特征的影响并不太难,限制依赖于系统的库功能的影响就困难得多了。在所有可能之处都使用标准库的功能是一个办法。
提供了多种整数类型、多种无符号类型、多种浮点类型的原因就是希望使程序员能够利用各种硬件特性。在许多机器上,不同种类的基础类型之间,在对存储的需求、存储访问时间和计算速度方面存在着明显的差异。如果你了解一台机器,那么就很容易做出选择,例如,选择对某个变量所适用的整数类型。而写出真正可移植的低级代码就要困难得多。

相关阅读:

SQL Server 2005实用教程(蒋文沛著)

汽车保险与理赔(杜春盛著)

人寿保险,人人必备(蔡秋杰著)

年华若樱(网络小说《同学少年多犯贱》文字

三侠五义-国学经典-珍藏版(吉林大学出版)

武道狂之诗(卷5):高手盟约(乔靖夫著)

更多图书资讯可访问读书人图书频道:http://www.reAder8.cn/book/

热点排行