Effective C++

[美]Scott Meyers

出版时间

2006-07-01

ISBN

9787121029097

评分

★★★★★
书籍介绍
《Effective C++:改善程序与设计的55个具体做法》(中文版)(第3版)一共组织55个准则,每一条准则描述一个编写出更好的C++的方式。每一个条款的背后都有具体范例支撑。第三版有一半以上的篇幅是崭新内容,包括讨论资源管理和模板(templates)运用的两个新章。为反映出现代设计考虑,对第二版论题做了广泛的修订,包括异常(exceptions)、设计模式(design patterns)和多线程(multithreading)。 《Effective C++》的重要特征包括: ·高效的 classes、functions、templates 和inheritance hierarchies(继承体系)方面的专家级指导。 ·崭新的 TR1 标准程序库功能应用,以及与既有标准程序库组件的比较。 ·洞察 C++和其他语言(例如Java、C#、C)之间的不同。此举有助于那些来自其他语言阵营的开发人员消化吸收 C++ 式的各种解法。
AI导读
核心看点
  • 汇集55条准则,提供高效类与函数设计指导
  • 深入解析资源管理、模板运用及异常处理
  • 对比C++与其他语言差异,揭示底层机制
适合谁读
  • 具备一定基础的C++程序员,旨在精进技术
  • 从Java、C#等语言转战C++的开发人员
  • 希望深入理解C++设计哲学与最佳实践的读者
读前提醒
  • 非初学者入门书,建议有代码经验后阅读
  • 部分示例基于旧标准,需结合现代C++理解
  • 内容密集且深奥,适合案头反复查阅精读
读者共识
  • C++程序员必读的经典圣经,地位不可动摇
  • 条款建议极具价值,除非必要否则勿违反
  • 需反复阅读方能豁然开朗,一遍绝对不够

本导读基于书籍简介、目录、原文摘录、短评和书评生成,不等同于全文精读。

精彩摘录
  • "1. “促进正确使用”的方法包括接口的一致性,以及与内置类型的行为兼容。 2. “阻止误用”的方法包括建立新类型、限制类型上的操作,束缚对象值,以及消除客户的资源管理责任。 3. 使用shared_ptr支持定制型删除器;也可以用来自动解除互斥锁。"
  • "Class的设计就是type的设计 。重载函数和操作符、控制内存的分配和归还、定义对象的初始化和总结。。。"
  • "前者更为高效,并可避免切割问题(slicing problem)。切割问题:当一个derived class对象以by value方式传递并被视为一个base class对象,base class的copy 构造函数会被调用,而derived class的那些特化性质全部被切割了。 该规则并不适用于内置类型,以及STL的迭代器和函数对象。对于它们而言,pass-by-value往往比较合适。"
  • "绝不要反悔pointer或reference指向一个local stack对象,或反悔一个heap-allocated对象,或反悔pointer或reference指向一个local static对象而有可能同时需要多个这样的对象。"
  • "一致性。这样客户就不需在打算访问class成员时迷惑地记住是否改用小括号。 如果有一个public变量,而我们最终取消了它,有可能会影响到所有使用到它的代码。而取消protect变量,只会影响到使用它的derived class。所以最好使用private封装变量。"
  • "这样可以增加封装性、包裹弹性和机能扩充性。"
  • "考虑接口为: const Rational operator*(const Rational& rhs) const; Rational oneFouth(1, 4); Rational result = oneFouth * 2; // 能编译通过 result = 2 * oneFouth; //不能编译通过"
  • "Rational result = oneFouth.operator*( 2 ); // 很好 result = 2.operator*(oneFouth); // 错误"
作者简介
Scott Meyers是全世界最知名的C++软件开发专家之一。他是畅销书《Effective C++》系列(Effective C++,More Effective C++,Effective STL)的作者,又是创新产品《Effective C++ CD》的设计者和作者,也是Addison-Wesley的“Effective Software Development Series"顾问编辑,以及《Software Development》杂志咨询板成员。他也为若干新公司的技术咨询板提供服务。Meyers于1993年自Brown大学获得计算机博士学位。他的网址是www,aristeia.com.
用户评论
不读此书非cpp程序员
scott meyers "effective三部曲"之一。老外的书有一个特点,扉页上总是写着感谢某某人。从没见过像这位大叔要感谢一条狗的,好冷。。。
C++必读经典。
好书,以后再读一次
相见恨晚
看过一遍,忘得差不多了,需要再翻翻。
从C++11开始,有一些已经不适用了,比如返回const,自己构造nocopyable之类的。
翻译略有滞涩,比如这句“如果有学生记得多一些,Dement 强调, 无非也只是记得1066 这个数字而己”;总体太棒了,像条款22,为什么要用private,见过得最周到清晰的解释
好书,C++ 必备,值得反复阅读。
当时学习C++学习的书籍,当时学习这种语言好傻啊,非常难懂,而且招人又少。
下载
收藏