标题：C++primer中文版(第4版)
出版信息
书名：C++primer中文版(第4版）
出版社: 人民邮电出版社; 第4版 (2008年7月1日)  封面
丛书名: 图灵程序设计丛书 
平装: 745页 
开本: 16开 
ISBN: 978-71151-45543 
产品尺寸及重量: 23.5 x 18.7 x 3 cm ; 1.1 Kg 
内容简介
作者根据最近几年的管理实践和教学实践经验，以及国内外最新学术成果的研究，对原有的管理学理论体系进行了必要的调整，对国内外最新学术成果进行了大量综合、诠释、充实和完善。本书主要是为了探讨第二次世界大战以来的主要管理理论，特别是近二十年来新出现的管理思想和理论观点。本书不是对管理理论的每一个职能进行详细的研究和描述，而是站在一个较高的层面来综合、分析与诠释第二次世界大战之后管理理论发展各个阶段主流管理理论总纲的理论观点，从中使我们可以窥探管理理论的全貌。[1]
说明：2006年6月第一版和2008年7月10次印刷、2007年9月7次印刷，均属版本不同，内容完全一致。 
编辑推荐
《C++ Primer中文版(第4版)》对C++基本概念和技术全面而且权威的阐述，对现代C++编程风格的强调，使本书成为C++初学者的最佳指南；对于中高级程序员，本书也是不可或缺的参考书。第4版不再强调低层编程技术，而把中心转向标准库的使用。书中很早就开始介绍标准库，示例也已经重新改写，充分利用了标准库设施。我们也对语言主题叙述的先后次序进行了重新编排，使讲解更加流畅。
作为目前业界广泛使用的编程语言，C++可谓包罗万象、博大精深。20年来，讲述C++的图书早已经汗牛充栋、层出不穷，但其中业界公认的完整涵盖C++标准的权威著作只有两部，其中一部就是本书！它是业界内久负盛名、无可替代的C++经典著作，它的原版销量超过450000册，它教授最新的编程理念与实践，它是所有C++程序员不可或缺的参考书！ [1]
作者简介
作者：(美国)李普曼(Stanley B.Lippman)；译者：李师贤、蒋爱军、梅晓勇、林瑛
Stanley B. Lippman，目前是微软公司 Visual C++ 团队的架构师。他从1984年开始在贝尔实验室与C++的设计者Bjarne Stroustrup一起从事C++的设计与开发。又先后在迪士尼和梦工厂从事动画制作，还担任过JPL的高级顾问。他还著有Inside the C++ Object Model。
李师贤，教授，中山大学计算机软件研究所副所长。江西于都人。合著有《ALGOL121语言与编译》、《Pascal程序设计教程》等。 [1]
目录
第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将移位操作符用于IO 137 
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使用switch 173 
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.9dowhile语句 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赋值与swap 282 
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 
类作用域中的名字查找 382 
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输出操作符<<的重载 435 
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.3operatornew函数和 
operatordelete函数 636 
18.1.4定位new表达式 638 
18.1.5显式析构函数的调用 639 
18.1.6类特定的new和delete 639 
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++可谓包罗万象、博大精深。20年来，讲述C++的图书早已经汗牛充栋、层出不穷，但其中业界公认的完整涵盖C++标准的权威著作只有两部，曾经有评论将之喻为“倚天屠龙”。其中一部当然是C++之父Bjarne Stroustrup所著的《C++程序设计语言》，内容精辟深刻，但是要求较高，只适合有一定经验的程序员提升功力之用。而另一部就是本书，自1989年初版以来，历经多次修订，始终保持了内容全面准确、循序渐进、明快易读的特色，早已奠定了无可替代的经典地位。原版到第3版就累积销售了45万册以上，第3版的中文版引入国内时，也产生了极大影响，甚至曾经出现过洛阳纸贵的局面。