C++ Primer中文版(第4版·特别版)(图灵程序设计丛书)(C++ Primer,Fourth Edition)

分類: 图书,计算机与互联网,程序语言与软件开发,语言与开发工具,C语言及其相关,
品牌: Stanley B.Lippman
基本信息·出版社:人民邮电出版社
·页码:974 页
·出版日期:2010年02月
·ISBN:9787115220172
·条形码:9787115220172
·版本:第1版
·装帧:平装
·开本:16
·正文语种:中文
·丛书名:图灵程序设计丛书
·外文书名:C++ Primer,Fourth Edition
产品信息有问题吗?请帮我们更新产品信息。
内容简介《C++ Primer中文版(第4版·特别版)》是久负盛名的C++经典教程,完美结合了C++大师Stanley B.Lippman丰富的实践经验和C++标准委员会原负责人Josée Lajoie对C++标准的深入理解,已经帮助全球无数程序员学会了C++。新版更加入了C++先驱Barbara E.Moo在C++教学方面的真知灼见,充分体现了C++语言的最新进展和当前的业界最佳实践。本版不但有大量教学辅助内容,用于强调重要的知识点,提醒常见的错误,推荐优秀的编程实践,给出使用提示,大量来自实战的示例和习题,更特别附带了《C++编程规范》的内容。
对C++基本概念和技术全面而且权威的阐述,对现代C++编程风格的强调,使本书成为C++初学者的最佳指南;对于中高级程序员,本书也是不可或缺的参考书。
目录
目录
第1章快速入门1
1.1编写简单的C++程序2
1.2初窥输入/输出5
1.2.1标准输入与输出对象5
1.2.2一个使用IO库的程序5
1.3关于注释8
1.4控制结构10
1.4.1 while语句10
1.4.2for语句12
1.4.3if语句14
1.4.4读入未知数目的输入15
1.5类的简介17
1.5.1Sales_item类17
1.5.2初窥成员函数19
1.6C++程序21
小结22
术语22
第一部分基本语言
第2章变量和基本类型29
2.1基本内置类型30
2.1.1整型30
2.1.2浮点型32
2.2字面值常量34
2.3变量38
2.3.1什么是变量39
2.3.2变量名40
2.3.3定义对象42
2.3.4变量初始化规则44
2.3.5声明和定义45
2.3.6名字的作用域46
2.3.7在变量使用处定义变量48
2.4const限定符49
2.5引用50
2.6typedef名字53
2.7枚举53
2.8类类型54
2.9编写自己的头文件57
2.9.1设计自己的头文件58
2.9.2预处理器的简单介绍60
小结62
术语62
第3章标准库类型67
3.1命名空间的using声明68
3.2标准库string类型70
3.2.1string对象的定义和初始化70
3.2.2String对象的读写71
3.2.3string对象的操作72
3.2.4string对象中字符的处理76
3.3标准库vector类型78
3.3.1vector对象的定义和初始化79
3.3.2vector对象的操作81
3.4迭代器简介83
3.5标准库bitset类型88
3.5.1bitset对象的定义和初始化88
3.5.2bitset对象上的操作90
小结92
术语92
第4章数组和指针95
4.1数组96
4.1.1数组的定义和初始化96
4.1.2数组操作99
4.2指针的引入100
4.2.1什么是指针100
4.2.2指针的定义和初始化101
4.2.3指针操作104
4.2.4使用指针访问数组元素106
4.2.5指针和const限定符110
4.3C风格字符串113
4.3.1创建动态数组117
4.3.2新旧代码的兼容120
4.4多维数组122
小结124
术语125
第5章表达式127
5.1算术操作符129
5.2关系操作符和逻辑操作符131
5.3位操作符134
5.3.1bitset对象或整型值的使用135
5.3.2将移位操作符用于IO137
5.4赋值操作符137
5.4.1赋值操作的右结合性138
5.4.2赋值操作具有低优先级138
5.4.3复合赋值操作符139
5.5自增和自减操作符140
5.6箭头操作符142
5.7条件操作符143
5.8sizeof操作符144
5.9逗号操作符145
5.10复合表达式的求值145
5.10.1优先级145
5.10.2结合性146
5.10.3求值顺序148
5.11new和delete表达式150
5.12类型转换154
5.12.1何时发生隐式类型转换154
5.12.2算术转换155
5.12.3其他隐式转换156
5.12.4显式转换158
5.12.5何时需要强制类型转换158
5.12.6命名的强制类型转换158
5.12.7旧式强制类型转换160
小结161
术语162
第6章语句165
6.1简单语句166
6.2声明语句167
6.3复合语句(块)167
6.4语句作用域168
6.5if语句169
6.6switch语句172
6.6.1使用switch173
6.6.2switch中的控制流173
6.6.3default标号175
6.6.4switch表达式与case标号176
6.6.5switch内部的变量定义176
6.7while语句177
6.8for循环语句179
6.8.1省略for语句头的某些部分180
6.8.2for语句头中的多个定义181
6.9do while语句182
6.10break语句183
6.11continue语句184
6.12goto语句185
6.13try块和异常处理186
6.13.1throw表达式186
6.13.2try块187
6.13.3标准异常189
6.14使用预处理器进行调试190
小结192
术语192
第7章函数195
7.1函数的定义196
7.1.1函数返回类型197
7.1.2函数形参表198
7.2参数传递199
7.2.1非引用形参199
7.2.2引用形参201
7.2.3vector和其他容器类型的形参206
7.2.4数组形参206
7.2.5传递给函数的数组的处理209
7.2.6main:处理命令行选项210
7.2.7含有可变形参的函数211
7.3return语句211
7.3.1没有返回值的函数212
7.3.2具有返回值的函数212
7.3.3递归216
7.4函数声明217
7.5局部对象220
7.5.1自动对象220
7.5.2静态局部对象220
7.6内联函数221
7.7类的成员函数222
7.7.1定义成员函数的函数体223
7.7.2在类外定义成员函数225
7.7.3编写Sales_item类的构造函数225
7.7.4类代码文件的组织227
7.8重载函数228
7.8.1重载与作用域230
7.8.2函数匹配与实参转换231
7.8.3重载确定的三个步骤232
7.8.4实参类型转换234
7.9指向函数的指针237
小结239
术语240
第8章标准IO库243
8.1面向对象的标准库244
8.2条件状态247
8.3输出缓冲区的管理249
8.4文件的输入和输出251
8.4.1文件流对象的使用251
8.4.2文件模式254
8.4.3一个打开并检查输入文件的程序256
8.5字符串流257
小结259
术语259
第二部分容器和算法
第9章顺序容器263
9.1顺序容器的定义264
9.1.1容器元素的初始化265
9.1.2容器内元素的类型约束267
9.2迭代器和迭代器范围268
9.2.1迭代器范围270
9.2.2使迭代器失效的容器操作271
9.3顺序容器的操作272
9.3.1容器定义的类型别名272
9.3.2begin和end成员273
9.3.3在顺序容器中添加元素273
9.3.4关系操作符277
9.3.5容器大小的操作278
9.3.6访问元素279
9.3.7删除元素280
9.3.8赋值与swap282
9.4vector容器的自增长284
9.5容器的选用287
9.6再谈string类型289
9.6.1构造string对象的其他方法290
9.6.2修改string对象的其他方法292
9.6.3只适用于string类型的操作293
9.6.4string类型的查找操作295
9.6.5string对象的比较298
9.7容器适配器300
9.7.1栈适配器301
9.7.2队列和优先级队列302
小结303
术语303
第10章关联容器305
10.1引言:pair类型306
10.2关联容器308
10.3map类型309
10.3.1map对象的定义309
10.3.2map定义的类型310
10.3.3给map添加元素311
10.3.4使用下标访问map对象311
10.3.5map::insert的使用313
10.3.6查找并读取map中的元素315
10.3.7从map对象中删除元素316
10.3.8map对象的迭代遍历316
10.3.9“单词转换”map对象317
10.4set类型319
10.4.1set容器的定义和使用319
10.4.2创建“单词排除”集321
10.5multimap和multiset类型322
10.5.1元素的添加和删除322
10.5.2在multimap和multiset中查找元素323
10.6容器的综合应用:文本查询程序325
10.6.1查询程序的设计326
10.6.2TextQuery类327
10.6.3TextQuery类的使用328
10.6.4编写成员函数330
小结332
术语332
第11章泛型算法335
11.1概述336
11.2初窥算法339
11.2.1只读算法339
11.2.2写容器元素的算法341
11.2.3对容器元素重新排序的算法343
11.3再谈迭代器347
11.3.1插入迭代器348
11.3.2iostream迭代器349
11.3.3反向迭代器353
11.3.4const迭代器355
11.3.5五种迭代器356
11.4泛型算法的结构358
11.4.1算法的形参模式359
11.4.2算法的命名规范359
11.5容器特有的算法361
小结362
术语363
第三部分类和数据抽象
第12章367
12.1类的定义和声明368
12.1.1类定义:扼要重述368
12.1.2数据抽象和封装369
12.1.3关于类定义的更多内容372
12.1.4类声明与类定义374
12.1.5类对象375
12.2隐含的this指针376
12.3类作用域380
12.4构造函数385
12.4.1构造函数初始化式387
12.4.2默认实参与构造函数391
12.4.3默认构造函数392
12.4.4隐式类类型转换393
12.4.5类成员的显式初始化396
12.5友元396
12.6static类成员398
12.6.1static成员函数400
12.6.2static数据成员400
小结403
术语403
第13章复制控制405
13.1复制构造函数406
13.1.1合成的复制构造函数409
13.1.2定义自己的复制构造函数409
13.1.3禁止复制410
13.2赋值操作符411
13.3析构函数412
13.4消息处理示例415
13.5管理指针成员419
13.5.1定义智能指针类421
13.5.2定义值型类425
小结427
术语427
第14章重载操作符与转换429
14.1重载操作符的定义430
14.2输入和输出操作符435
14.2.1输出操作符
14.2.2输入操作符的重载437
14.3算术操作符和关系操作符439
14.3.1相等操作符440
14.3.2关系操作符441
14.4赋值操作符441
14.5下标操作符442
14.6成员访问操作符443
14.7自增操作符和自减操作符446
14.8调用操作符和函数对象449
14.8.1将函数对象用于标准库算法450
14.8.2标准库定义的函数对象451
14.8.3函数对象的函数适配器453
14.9转换与类类型454
14.9.1转换为什么有用454
14.9.2转换操作符455
14.9.3实参匹配和转换458
14.9.4重载确定和类的实参461
14.9.5重载、转换和操作符464
小结466
术语467
第四部分面向对象编程与泛型编程
第15章面向对象编程471
15.1面向对象编程:概述472
15.2定义基类和派生类473
15.2.1定义基类474
15.2.2protected成员475
15.2.3派生类476
15.2.4virtual与其他成员函数479
15.2.5公用、私有和受保护的继承482
15.2.6友元关系与继承486
15.2.7继承与静态成员486
15.3转换与继承487
15.3.1派生类到基类的转换487
15.3.2基类到派生类的转换489
15.4构造函数和复制控制490
15.4.1基类构造函数和复制控制490
15.4.2派生类构造函数490
15.4.3复制控制和继承494
15.4.4虚析构函数495
15.4.5构造函数和析构函数中的虚函数497
15.5继承情况下的类作用域497
15.5.1名字查找在编译时发生498
15.5.2名字冲突与继承498
15.5.3作用域与成员函数499
15.5.4虚函数与作用域500
15.6纯虚函数502
15.7容器与继承503
15.8句柄类与继承504
15.8.1指针型句柄505
15.8.2复制未知类型507
15.8.3句柄的使用508
15.9再谈文本查询示例511
15.9.1面向对象的解决方案513
15.9.2值型句柄514
15.9.3Query_base类515
15.9.4Query句柄类516
15.9.5派生类518
15.9.6eval函数520
小结522
术语523
第16章模板与泛型编程525
16.1模板定义526
16.1.1定义函数模板526
16.1.2定义类模板528
16.1.3模板形参529
16.1.4模板类型形参531
16.1.5非类型模板形参533
16.1.6编写泛型程序534
16.2实例化535
16.2.1模板实参推断537
16.2.2函数模板的显式实参540
16.3模板编译模型542
16.4类模板成员545
16.4.1类模板成员函数548
16.4.2非类型形参的模板实参551
16.4.3类模板中的友元声明552
16.4.4Queue和QueueItem的友元声明554
16.4.5成员模板556
16.4.6完整的Queue类558
16.4.7类模板的static成员559
16.5一个泛型句柄类560
16.5.1定义句柄类561
16.5.2使用句柄562
16.6模板特化564
16.6.1函数模板的特化565
16.6.2类模板的特化567
16.6.3特化成员而不特化类569
16.6.4类模板的部分特化570
16.7重载与函数模板570
小结573
术语574
第五部分高级主题
第17章用于大型程序的工具579
17.1异常处理580
17.1.1抛出类类型的异常581
17.1.2栈展开582
17.1.3捕获异常583
17.1.4重新抛出585
17.1.5捕获所有异常的处理代码586
17.1.6函数测试块与构造函数586
17.1.7异常类层次587
17.1.8自动资源释放589
17.1.9auto_ptr类591
17.1.10异常说明595
17.1.11函数指针的异常说明598
17.2命名空间599
17.2.1命名空间的定义599
17.2.2嵌套命名空间603
17.2.3未命名的命名空间604
17.2.4命名空间成员的使用606
17.2.5类、命名空间和作用域609
17.2.6重载与命名空间612
17.2.7命名空间与模板614
17.3多重继承与虚继承614
17.3.1多重继承615
17.3.2转换与多个基类617
17.3.3多重继承派生类的复制控制619
17.3.4多重继承下的类作用域620
17.3.5虚继承622
17.3.6虚基类的声明624
17.3.7特殊的初始化语义625
小结628
术语628
第18章特殊工具与技术631
18.1优化内存分配632
18.1.1C++中的内存分配632
18.1.2allocator类633
18.1.3operator new函数和operator delete函数636
18.1.4定位new表达式638
18.1.5显式析构函数的调用639
18.1.6类特定的new和delete639
18.1.7一个内存分配器基类641
18.2运行时类型识别646
18.2.1dynamic_cast操作符647
18.2.2typeid操作符649
18.2.3RTTI的使用650
18.2.4type_info类652
18.3类成员的指针653
18.3.1声明成员指针653
18.3.2使用类成员的指针655
18.4嵌套类658
18.4.1嵌套类的实现658
18.4.2嵌套类作用域中的名字查找661
18.5联合:节省空间的类662
18.6局部类665
18.7固有的不可移植的特征666
18.7.1位域666
18.7.2volatile限定符668
18.7.3链接指示:extern"C"669
小结672
术语673
附录 标准库675
索引703
C++编程规范747
……[看更多目录]