C++ Primer中文版

Stanley B.Lippman

出版时间

2010-01-01

ISBN

9787115220172

评分

★★★★★

标签

计算机

书籍介绍
这不是一本买来就能快速翻完的书。从读者反馈看,它常被当作「看了两年才看完」的硬骨头,也有人被它的厚度劝退、半途而废。但正是这种「难」,构成了它的价值:它不满足于教你写出能跑的代码,而是把C++语言最核心、也最易踩坑的机制讲透——复制控制、友元与模板的交互、操作符重载、继承与访问控制,每一处都追问「为什么这样设计」。它适合那些愿意被语言「较真」的人:无论是刚入门想建立扎实根基,还是中高级开发者想补上标准背后的逻辑。需要提醒的是,它偏重原理而非速成,追求「够用就好」的读者或许会觉得它过于较真。
作者简介
Stanley B. Lippman 微软公司 Visual C++ 团队的架构师。他从1984年开始在贝尔实验室与C++的设计者Bjarne Stroustrup一起从事C++的设计与开发。他还著有Inside the C++ Object Model。 Josée Lajoie 曾经是IBM加拿大研究中心C/C++编译器开发团队的成员,在ISO C++标准委员会工作了7年,担任过ISO核心语言工作组的主席和C++ Report杂志的专栏作家。 Barbara E. Moo 拥有25年软件经验的独立咨询顾问。在AT&T,她与Stroustrup、Lippman一起管理过复杂的C++开发项目。她和Andrew Koenig合著了Accelerated C++和Ruminations on C++。
AI导读
核心看点
  • C++经典教程,权威阐述基本概念与技术
  • 融合大师经验与标准理解,体现最佳实践
  • 附带编程规范,强调现代C++编程风格
读者共识
  • 公认的经典教材,绕不开的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 编写简单的C++程序 1.2 初窥输入/输出  1.2.1 标准输入与输出对象  1.2.2 一个使用IO库的程序 1.3 关于注释 1.4 控制结构  1.4.1 while语句  1.4.2 for语句  1.4.3 if语句  1.4.4 读入未知数目的输入 1.5 类的简介  1.5.1 Sales_item类  1.5.2 初窥成员函数 1.6 C++程序 小结 术语 第一部分 基本语言第2章 变量和基本类型第3章 标准库类型第4章 数组和指针第5章 表达式第6章 语句第7章 函数第8章 标准IO库 第二部分 容器和算法第9章 顺序容器第10章 关联容器第11章 泛型算法 第三部分 类和数据抽象第12章 类第13章 复制控制第14章 重载操作符与转换 第四部分 面向对象编程与泛型编程第16章 模板与泛型编程 第五部分 高级主题第17章 用于大型程序的工具第18章 特殊工具与技术
用户评论
很好的书,还没看完。
适合初学者进阶。
今天好不容易才从图书馆借到这本书 希望和efficiecive c++陪我过这个即将来临的假期
本年度NUKE掉的第一本书,之前度过第三版,有了很大的改善,着重于STL和c++思想的介绍,摒弃了很多c让人崩溃的东东。如果耐心去品味,有很多思想于其中,如句柄、智能指针等等,很值得回味。c++是永远的王者啊……
还好吧,常用书,很久没看了
翻译有点过誉
C相关
好书,可以读很多年
我觉得 c++ 真的有点过了 所以现在 java 的很多特性都很受欢迎 刚刚好解决问题 刚刚好够用 typescript 和 go 的语言特性设计也或多或少参考了 java scalar在 java 基础上 向更易用 开发效率更高迈进 = =
求书
收藏