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

[美] Stanley B. Lippman, [美] Josée Lajoie, [美] Barbara E. Moo

出版时间

2013-08-31

ISBN

9787121155352

评分

★★★★★
书籍介绍
这本书在读者口中呈现出一种奇特的分裂:有人视其为必须摆在手边反复翻阅的案头经典,也有人坦言大一啃它时"死去活来",甚至后悔把大量精力耗在语法细节上。它真正的价值,或许不在于教你快速写出程序,而在于逼你认真对待语言本身的精确性——友元的作用域、严格弱序里"小于"与"小于等于"的微妙差异、auto与decltype如何推断类型,这些容易被略过的角落恰恰构成了C++区别于脚本语言的筋骨。它适合那些愿意为"为什么这样设计"较真的人,而非只求速成的读者。需要提醒的是,中文版翻译的严谨性饱受争议,有读者据此建议直接阅读英文原版。
作者简介
Stanley B. Lippman目前是微软公司 Visual C++ 团队的架构师。他从1984年开始在贝尔实验室与C++的设计者Bjarne Stroustrup一起从事C++的设计与开发。他在迪士尼和梦工厂从事动画制作,还担任过JPL的高级顾问。 Josée Lajoie曾经是IBM加拿大研究中心C/C++编译器开发团队的成员,在ISO C++标准委员会工作了7年,担任过ISO核心语言工作组的主席和C++ Report杂志的专栏作家。 Barbara E. Moo是拥有25年软件经验的独立咨询顾问。在AT&T,她与Stroustrup、Lippman一起管理过复杂的C++开发项目。
AI导读
核心看点
  • C++经典教程第五版,全面更新至C++11标准。
  • 作者团队权威,涵盖标准制定与教学经验。
  • 内容详尽,适合从入门到进阶的系统学习。
读者共识
  • 公认的最佳C++入门教材,地位不可动摇。
  • 内容极其详尽,被读者戏称为“砖头”书。
  • 翻译质量整体优良,但偶有严谨性争议。
精彩摘录
  • "If we have not previously told the compiler that the friend is a template, then the compiler will infer that the friend is an ordinary nontemplate class or function. 如果没有事先告诉编译器该友元是一个模板,则编译器将认为该友元是一个普通非模板类或非模板函数。"
  • "A friend declaration introduces the named class or nonmember function into the surrounding scope. Moreover, a friend function may be defined inside the class. The scope of the function is exported to the scope enclosing the class definition. 友元声明将已命名的类或非成员函数引入到外围作用域中。此外,友元函数可以在类的内部定义,该函数的作用域扩展到包围该类定"
  • "to make a member function a friend, the class containing that member must have been defined. 必须先定义包含成员函数的类,才能将成员函数设为友元。 When we want to restrict friendship to a specific instantiation, then the class or function must have been declared before it can be used in a friend declaration 想要限制对特定实例化的友元关系时,必"
  • "可以将严格弱序看作"小于等于" •两个关键字不能同时"小于等于"对方;如果k1"小于等于"k2, 那么 k2 决不能"小于等于" k1 ."
  • "We can think of a strict weak ordering as “less than” • Two keys cannot both be “less than” each other; if k1 is “less than” k2, then k2 must never be “less than” k1."
  • "Unlike using declarations for ordinary members, a constructor using declaration does not change access level of the inherited constructor(s). More over, a using declaration can't specify explicit or constexpr, the inherited constructor has the same property as the corresponding base constructor."
  • "An inherited constructor is not treated as a user-defined constructor. Therefore, a class that contains only inherited constructors will have a synthesized default constructor."
  • "4.3.2. 新旧代码的兼容 许多 C++ 程序在有标准类之前就已经存在了,因此既没有使用标准库类型 string 也没有使用 vector。而且,许多 C++ 程序为了兼容现存的 C 程序,也 不能使用 C++ 标准库。因此,现代的 C++ 程序经常必须兼容使用数组和/或 C 风格字符串的代码,标准库提供了使兼容界面更容易管理的手段。 194 混合使用标准库类 string 和 C 风格字符串 正如第 3.2.1 节中显示的,可用字符串字面值初始化 string 类对象: string st3("Hello World"); // st3 holds Hello World 通常,由于 C "
目录
第1章 开始 1
1.1 编写一个简单的C++程序 2
1.1.1 编译、运行程序 3
1.2 初识输入输出 5
1.3 注释简介 8

显示全部
用户评论
有点像脚本语言了
第五版将C++11包容得很好,右值引用、λ等新东西讲解很棒,小修改也处处体现。中文版翻译毫不生硬。(2014.5.1京东)
我这一退 就是一辈子!
要放在手边时不时参考的书,先标记读过。任何一个严肃的C++ 程序员都应该买一本。哈?你说第四版你都翻遍了而且这本没有多少C++11?如果你第四版买的是中文版,扔掉它,换这一版。想详细了解C++11,看Mayers的Effective Modern C++ 。
fork me
常读常新。
一般
2022 finished 4th 一年多 终于看完了 吹爆这个
很细节,不过好多新特性都点到为止,作为入门书来说很不错
读完的第一本大部头书,对C++的基础知识有了大致了解,但还是有很多地方不理解,后期结合项目再二刷这本书。
下载
收藏