注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术计算机/网络软件与程序设计C/C++及其相关C++ Primer中文版(第三版)

C++ Primer中文版(第三版)

C++ Primer中文版(第三版)

定 价:¥128.00

作 者: (美)Stanley B.Lippman,(美)Josee Lajoie著;潘爱民,张丽译
出版社: 中国电力出版社
丛编项: 深入C++系列
标 签: C++

ISBN: 9787508309897 出版时间: 2002-04-01 包装: 胶版纸
开本: 24cm 页数: 1033 字数:  

内容简介

  C++ Primer的第三版结合了Stanley B.Lippman的实践经验和Josée Lajoie对于ANSI/ISO标准C++的深入理解。这本指导书的第三版已经被重新改写过,以便更加精确地讲述标准C++的特性和用法。在本书中,对于C++初学者特别有价值的是一些来自真实世界中的程序例子,它们说明了泛型程序(generic program)的设计、面向对象程序的设计、模板的用法,以及使用标准C++进行程序设计的方方面面。而且,本书也在适当的地方讲到了一些习惯用法以及效率指导。 第三版的变化分为四类: 1.涵盖了语言所增加的新特性:异常处理、运行时刻类型识别、名字空间、内置bool类型、新风格的类型强制转换。 2.涵盖了新的C++标准库,包括complex和string类型、auto_ptr和pair类型、顺序容器和关联容器类型(主要是list、vector、map、set容器),以及泛型算法。 3.对原来的文字作了调整,以反映出标准C++对原有语言特性的精炼、变化以及扩展。语言精炼的一个例子是,现在能够前向声明一个嵌套类型,这在以前是不允许的。语言变化的一个例子是,一个虚拟函数的派生类实例能够返回一个“基类实例的返回类型”的派生类。这种变化支持一个被称为clone 或factory的方法(关于clone()虚拟函数,见17.5.7节说明)。对原有语言特性进行扩展的一个例子是,现在可以显式地指定一个函数模板的一个或多个模板实参。(实际上,模板已经被大大地扩展了,差不多已经成为一个新特性!) 4.加强了对C++高级特性的对待和组织方式,尤其是对于模板、类以及面向对象程序设计。Stan从一个相对较小的C++提供者团体到一般的C++用户团体的转移,带来的一个影响是,他相信,越是深入地了解问题,则程序员越是能够高明地使用C++语言。因此,在第三版中,许多情况下,我们已经把焦点转移到如何更好地说明底层特性的概念,以及怎样最好地使用它们,并指出在适当的时候应该避免潜在的缺陷。

作者简介

  Stanley Lippman 他的职业是提供关于C++和面向对象的训练、咨询、设计和指导。他在成为一名独立咨询顾问之前,曾经是迪士尼动画公司的首席软件设计师。当他在AT&T B ell实验室的时候,领导了cfront 3.0版本和2.1版本的编译器开发组他也是Bjarne Stroustrup领导的Bell实验室Foundation项目的成员之一,负责C++程序设计环境中的对象模型部分。Stan是本书所有三个版本的作者,他还撰写了许多关于C++的文章。目前他已受雇于微软公司,负责Visual C++项目。Josee Lajoie 是IBM加拿大实验室的C/C++编译器开发组的一名成员,也是ANSI/ISO C++标准委员会的核心语言工作组的主席。Josee是《C++ Report》杂志的专栏作家,目前正在滑铁卢大学的计算机图形实验室攻读硕士学位。潘爱民 浙江海宁人,现任职于北京大学计算机科学技术研究所,副研究员,研究方向为网络与信息安全。自1994年至1999年,他一直从事计算机软件开发方面的工作。1998年到今,了利用业余时间著译了多部关于软件开发的著作,如《Visual C++技术内幕》(第四版),《COM原理与应用》、《COM本质论》、《深入解析ATL》等。1999年他还是《微电脑世界》杂志社的合作专家,撰写了大量深入权威的技术文章。1991年他在南开大学数学系获学士学位,1994年在清华大学自动化系获硕士学位。

图书目录

第一篇  C++概述
第1章  开始  3 
1.1  问题的解决  3 
1.2  C++程序  4 
1.3  预处理器指示符  10 
1.4  注释  14 
1.5  输入/输出初步  16 
第2章  C++浏览  20
2.1  内置数组数据类型  20
2.2  动态内存分配和指针  23
2.3  基于对象的设计  26
2.4  面向对象的设计  36
2.5  泛型设计  44
2.6  基于异常的设计  50
2.7  用其他名字来命名数组  54
2.8  标准数组--向量(vector)  59
第二篇  基本语言
第3章  C++数据类型  67
3.1  文字常量  67
3.2  变量  70
3.3  指针类型  78
3.4  字符串类型  83
3.5  const限定修饰符  91
3.6  引用类型  94
3.7  布尔类型  99
3.8  枚举类型  100
3.9  数组类型  102
3.10  vector容器类型  110
3.11  复数类型  113
3.12  Typedef名字  114
3.13  volatile  115
3.14  pair类型  116
3.15  类(class)类型  117
第4章  表达式  127
4.1  什么是表达式  127
4.2  算术操作符  129
4.3  等于、关于和逻辑操作符  131
4.4  赋值操作符  134
4.5  递增和递减操作符  138
4.6  复数操作  140
4.7  条件操作符  143
4.8  sizeof操作符  144
4.9  new和delete表达式  146
4.10  逗号操作符  148
4.11  位操作符  148
4.12  bitset操作  151
4.13  优先级  155
4.14  这表型转换  158
4.15  栈类实例  167
第5章  语句  171
5.1  简单语句和复合语句  171
5.2  声明语句  172
5.3  if语句  175
5.4  switch语句  183
5.5  for循环语句  190
5.6  while循环  194
5.7  do while  196
5.8  break语句  198
5.9  continue语句  199
5.10  goto语句  199
5.11  链表例子  201
第6章  抽象容器类型  226
6.1  我们的文本查询系统  227
6.2  vector还是list?  230
6.3  cector怎样自己增长  231
6.4  定义一个顺序容器  234
6.5  迭代器  238
6.6  顺序容器操作  242
6.7  存储文本行  246
6.8  找到一个子串  249
6.9  处理标点符号  255
6.10  注意其他格式的字符串  258
6.11  其他string操作  261
6.12  生成文本位置map  266
6.13  创建单词排除集  276
6.14  完整的程序  279
6.15  multimap和multiset  288
6.16  栈(stack)  291
6.17  队列(queue)和优先队列(priority_queue)  293
6.18  回顾iStack类  294
第三篇  基本过程的程序设计
第7章  函数  299
7.1  概述  299
7.2  函数原型  302
7.3  参数传递  305
7.4  返回一个值  322
7.5  递归  326
7.6  inline函数  328
7.7  链接指示符:extern"C"  329
7.8  main():处理命令行选项  332
7.9  指向函数的指针※  342
第8章  域和生命期  353
8.1  域  353
8.2  全局对象和函数  358
8.3  局部对象  364
8.4  动态分配的对象  367
8.5  名字空间定义 ※  379
8.6  使用名字空间成员 ※  391
第9章  重载函数  400
9.1  重载函数声明  400
9.2  重载解析的三个步骤  411
9.3  参数类型转换 ※  413
9.4  函数重载解析细节  426
第10章  函数模板  439
10.1  函数模板定义  439
10.2  函数模板实例化  446
10.3  模板实参推演 ※  449
10.4  显式模板实参 ※  453
10.5  模板编译模式 ※  456
10.6  模板显式特化 ※  460
10.7  重载函数模板 ※  465
10.8  考虑模板函数实例的重载解析 ※  467
10.9  模板定义中的名字解析 ※  474
10.10  名字空间和函数模板 ※  480
10.11  函数模板示例  484
第11章  异常处理  487
11.1  抛出异常  487
11.2  try块  490
11.3  捕获异常  494
11.4  异常规范  502
11.5  异常与设计事项  505
第12章  泛型算法  507
12.1  概述  507
12.2  使用泛型算述  510
12.3  函数对象  520
12.4  回顾iterator  528
12.5  泛型算法  535
12.6  何时不用泛型算法  538
第四篇  基于对象的程序设计
第13章  类  545
13.1  类定义  545
13.2  类对象  552
13.3  类成员函数  554
13.4  隐含的this指针  565
13.5  静态类成员  570
13.6  指向类成员的指针  576
13.7  联合(union):一个节省空间的类  585
13.8  位域(bit-field):一种节省空间的成员  590
13.9  类域 ※  591
13.10  嵌套类  598
13.11  作为名字空间成员的类 ※  607
13.12  局部类 ※  610
第14章  类的初始化、赋值和析构  613
14.1  类的初始化  613
14.2  类的构造函数  615
14.3  类的析构函数  625
14.4  类对象数组和vector  631
14.5  成员初始化表  637
14.6  按成员初始化 ※  643
14.7  按成员赋值 ※  648
14.8  效率问题  651
第15章  重载操作符和用户定义的转换  657
15.1  操作符重载  657
15.2  友元(friend)  666
15.3  操作符 =  669
15.4  操作符 []  671
15.5  操作符operator()  672
15.6  操作符 ->  674
15.7  操作符 ++和--  676
15.8  操作符new和delete  680
15.9  用户定义的转换  688
15.10  选择一个转换 ※  697
15.11  重载解析和成员函数 ※  708
15.12  重载解析和操作符 ※  713
第16章  类模板  722
16.1  类模板定义  722
16.2  类模板实例化  730
16.3  类模板的成员函数  739
16.4  类模板中的友元(friend)声明  742
16.5  类模板的静态数据成员  747
16.6  类模板的嵌套类型  749
16.7  成员模板 ※  752
16.8  类模板和编译模式 ※  756
16.9  类模板特化 ※  762
16.10  类模板部分特化 ※  765
16.11  类模板中的名字解析 ※  767
16.12  名字空间和类模板 ※  769
16.13  模板数组类  771
第五篇  面向对象的程序设计
第17章  类继承和子类型  781
17.1  定义一个类层次结构  784
17.2  确定层次的成员  790
17.3  基类成员访问  800
17.4  基类和派生类的构造  807
17.5  基类和派生类虚拟函数  816
17.6  按成员初始化和赋值 ※  839
17.7  UserQuery管理类  844
17.8  把它组合在一起  852
第18章  多继承和虚拟继承  858
18.1  准备阶段  858
18.2  多继承  862
18.3  public、private和protected继承  868
18.4  继承下的类域  875
18.5  虚拟继承 ※  883
18.6  多继承及虚拟继承实例 ※  893
18.7  按成员赋值 ※  648
18.8  效率问题  651
第19章  C++中继承的用法  906
19.1  运行时刻类型识别  906
19.2  异常和继承  916
19.3  重载解析过程和继承 ※  932
第20章  iostream库  942
20.1  输出操作符<<  946
20.2  输入  951
20.3  其他输入/输出操作符  962
20.4  重载输出操作符<<  968
20.5  重载输入操作符>>  972
20.6  文件输入和输出  975
20.7  条件状态  984
20.8  string流(字符串流)  986
20.9  格式状态  989
20.10  一个强类型库  997
附录  泛型算法(按字母序)  999

本目录推荐