作者: Scott Meyers
译者: 侯捷
出版社: 电子工业出版社
出版年: 2006-7
页数: 297
定价: 58.00
装帧: 平装
ISBN: 9787121029097
内容简介 · · · · · ·
在国际上,本书所引起的反响,波及整个计算机技术出版领域,余音至今未绝。几乎在所有C++书籍的推荐名单上,本书都会位于前三名。作者高超的技术把握力、独特的视角﹑诙谐轻松的写作风格﹑独具匠心的内容组织,都受到极大的推崇和仿效。这种奇特的现象,只能解释为人们对这本书衷心的赞美和推崇。
《Effective C++中文版(第3版改善程序与设计的55个具体做法)》不是读完一遍就可以束之高阁的快餐读物,也不是用以解决手边问题的参考手册,而是需要您去反复阅读体会的,C++是... (展开全部) 有人说C++程序员可以分成两类,读过Effective C++的和没读过的。世界顶级C++大师Scott Meyers成名之作的第三版的确当得起这样的评价。当您读过《Effective C++中文版(第3版改善程序与设计的55个具体做法)》后,就获得了迅速提升自己C++功力的一个契机。
在国际上,本书所引起的反响,波及整个计算机技术出版领域,余音至今未绝。几乎在所有C++书籍的推荐名单上,本书都会位于前三名。作者高超的技术把握力、独特的视角﹑诙谐轻松的写作风格﹑独具匠心的内容组织,都受到极大的推崇和仿效。这种奇特的现象,只能解释为人们对这本书衷心的赞美和推崇。
《Effective C++中文版(第3版改善程序与设计的55个具体做法)》不是读完一遍就可以束之高阁的快餐读物,也不是用以解决手边问题的参考手册,而是需要您去反复阅读体会的,C++是真正程序员的语言,背后有着精深的思想与无与伦比的表达能力,这使得它具有类似宗教般的魅力。希望这本书能够帮助您跨越C++的重重险阻,领略高处才有的壮美风光,做一个成功而快乐的C++程序员。
作者简介 · · · · · ·
豆瓣成员常用的标签(共89个) · · · · · ·
喜欢读"Effective C++"的人也喜欢 · · · · · ·
按有用程度 按页码先后 最新笔记
-
第102页
mark (毕业论文!!!)
Page102 若所有参数皆需类型转换,请为此采用 non-member 函数 const T operator*(const T& lhs, const T& rhs); Page106 考虑写出一个不抛出异常的 swap 函数 Page 40 为多态基类声明 virtual 函数 Page52 令 operator= 返回一个 reference to *this T& operator=(const T& rhs) { return *this; } Page53 在 operator= 中处理“自我赋值” 证同测试 if (this == &rhs) { retu... (更多)Page102若所有参数皆需类型转换,请为此采用 non-member 函数const T operator*(const T& lhs, const T& rhs);Page106考虑写出一个不抛出异常的 swap 函数Page 40为多态基类声明 virtual 函数Page52令 operator= 返回一个 reference to *thisT& operator=(const T& rhs){ return *this;}Page53在 operator= 中处理“自我赋值”证同测试if (this == &rhs){ return *this;}异常安全性T& T::opeartor=(const T& rhs){ if (this == &rhs) { return *this; } delete pb; pb = new Bitmap(*rhs.pb); return *this;}T& T::operator=(const T& rhs){ Bitmap* pOrig = pb; pb = new Bitmap(*rhs.pb); delete pOrig; return *this;}swap(T& rhs)T& T::operator=(const T& rhs){ T temp(rhs); swap(temp); return *this;}T& T::operator=(T rhs){ swap(rhs); return *this;}copy and swapPage57赋值对象时勿忘其每一个成分Page26确定对象被使用前已先被初始化member initialization list·non-member 对象:手工初始化·成员初值表·加强你的设计:local static 对象替换 non-local static 对象Page127为“异常安全”而努力是值得的Lock ml(&mutex);异常安全函数满足其中之一:·基本承诺·强烈保证·不抛掷异常std::tr1::shared_ptr<>.reset()copy and swapPage 134透彻了解 inlining 的里里外外template <typename T>inline const T& std::max(const T& a, const T& b){ return a < b ? b : a;}一般不能 inlining 的:·循环·递归·virtualinline 函数被不被 inlined 取决于其调用的实施方式inline 更新 -> 重新编译重新连接动态连接不能被调试Page140将文件文件间的编译依存关系降至最低foctory 函数class Person{ public: static std::tr1::shared_ptr<> create();};·Handle classes·Interface classes解除了接口和实现之间的耦合关系解决编译依存性最小化:·声明式·Handle、Interface (收起)2011-04-02 14:49:34 回应
-
第78页
mark (毕业论文!!!)
设计与声明 Page78 让接口容易被正确使用,不易被误用 外覆类型 Page84 设计 class 犹如设计 type Page86 宁以 pass-by-reference-to-const 替换 pass-by-value 但是有三个例外: ·内置类型 ·函数对象 ·STL 迭代器 Page90 必须返回对象时别妄想返回其 reference 返回 reference 有针对三种情况: ·local stack ·heap-allocated ·local static 而应返回 object Page94 将成员变量声明为 priv... (更多)设计与声明Page78让接口容易被正确使用,不易被误用外覆类型Page84设计 class 犹如设计 typePage86宁以 pass-by-reference-to-const 替换 pass-by-value但是有三个例外:·内置类型·函数对象·STL 迭代器Page90必须返回对象时别妄想返回其 reference返回 reference 有针对三种情况:·local stack·heap-allocated·local static而应返回 objectPage94将成员变量声明为 private三个好处:·一致性·访问控制(不能访问,只读,只写,读写)·封装protected 与 public 一样都破坏了封装性Page98宁以 non-member、non-friend 替换 member 函数namespace ns{ }好处:·封装性·包裹弹性·技能扩充性 (收起)2011-03-31 13:29:10 回应
-
第34页
mark (毕业论文!!!)
page 34 编译期自动生成的四个函数 default 构造函数、copy 构造函数、析构函数、copy assignment 函数 class Empty { public: Empty() {} Empty(const Empty& rhs) {} ~Empty() {} Empty& operator=(const Empty& rhs) {} }; Page 37 private 不实现 -> 连接错误 连接期 -> 编译期 // 防止 copy 和 assignment class Uncopyable { private: Uncopyable(const Uncopyable&); ... (更多)page 34编译期自动生成的四个函数default 构造函数、copy 构造函数、析构函数、copy assignment 函数class Empty{ public: Empty() {} Empty(const Empty& rhs) {} ~Empty() {} Empty& operator=(const Empty& rhs) {}};Page 37private不实现 -> 连接错误连接期 -> 编译期// 防止 copy 和 assignmentclass Uncopyable{ private: Uncopyable(const Uncopyable&); Uncopyable& operator=(const Uncopyable&);protected: Uncopyable() {} ~Uncopyable() {}};class Example : private Uncopyable{ };也可以使用 Boost 中的 noncopyable (收起)2011-03-28 13:52:02 回应
-
第61页
mark (毕业论文!!!)
Page61 资源管理 以对象管理资源 std::auto_ptr<> 资源获取即初始化 引用计数型智慧指针 std::tr1::shared_ptr<> 但是不适用于数组 Page66 在资源管理类中小心 copying 行为 Page69 在资源管理类中提供对原始资源的访问 get(): 显示转换 operator-> operator* 隐式转换函数 operator T() const { return t; } 复用是为了避免代码重复 Page73 成对使用 new 和 delete 时要采取相... (更多)Page61资源管理以对象管理资源std::auto_ptr<>资源获取即初始化引用计数型智慧指针std::tr1::shared_ptr<>但是不适用于数组Page66在资源管理类中小心 copying 行为Page69在资源管理类中提供对原始资源的访问get(): 显示转换operator->operator*隐式转换函数operator T() const{ return t;}复用是为了避免代码重复Page73成对使用 new 和 delete 时要采取相同形式new deletenew[] delete[]Page75以独立语句将 newed 对象置入智能指针 (收起)2011-03-31 13:28:24 回应
-
第78页
mark (毕业论文!!!)
设计与声明 Page78 让接口容易被正确使用,不易被误用 外覆类型 Page84 设计 class 犹如设计 type Page86 宁以 pass-by-reference-to-const 替换 pass-by-value 但是有三个例外: ·内置类型 ·函数对象 ·STL 迭代器 Page90 必须返回对象时别妄想返回其 reference 返回 reference 有针对三种情况: ·local stack ·heap-allocated ·local static 而应返回 object Page94 将成员变量声明为 priv... (更多)设计与声明Page78让接口容易被正确使用,不易被误用外覆类型Page84设计 class 犹如设计 typePage86宁以 pass-by-reference-to-const 替换 pass-by-value但是有三个例外:·内置类型·函数对象·STL 迭代器Page90必须返回对象时别妄想返回其 reference返回 reference 有针对三种情况:·local stack·heap-allocated·local static而应返回 objectPage94将成员变量声明为 private三个好处:·一致性·访问控制(不能访问,只读,只写,读写)·封装protected 与 public 一样都破坏了封装性Page98宁以 non-member、non-friend 替换 member 函数namespace ns{ }好处:·封装性·包裹弹性·技能扩充性 (收起)2011-03-31 13:29:10 回应
-
第102页
mark (毕业论文!!!)
Page102 若所有参数皆需类型转换,请为此采用 non-member 函数 const T operator*(const T& lhs, const T& rhs); Page106 考虑写出一个不抛出异常的 swap 函数 Page 40 为多态基类声明 virtual 函数 Page52 令 operator= 返回一个 reference to *this T& operator=(const T& rhs) { return *this; } Page53 在 operator= 中处理“自我赋值” 证同测试 if (this == &rhs) { retu... (更多)Page102若所有参数皆需类型转换,请为此采用 non-member 函数const T operator*(const T& lhs, const T& rhs);Page106考虑写出一个不抛出异常的 swap 函数Page 40为多态基类声明 virtual 函数Page52令 operator= 返回一个 reference to *thisT& operator=(const T& rhs){ return *this;}Page53在 operator= 中处理“自我赋值”证同测试if (this == &rhs){ return *this;}异常安全性T& T::opeartor=(const T& rhs){ if (this == &rhs) { return *this; } delete pb; pb = new Bitmap(*rhs.pb); return *this;}T& T::operator=(const T& rhs){ Bitmap* pOrig = pb; pb = new Bitmap(*rhs.pb); delete pOrig; return *this;}swap(T& rhs)T& T::operator=(const T& rhs){ T temp(rhs); swap(temp); return *this;}T& T::operator=(T rhs){ swap(rhs); return *this;}copy and swapPage57赋值对象时勿忘其每一个成分Page26确定对象被使用前已先被初始化member initialization list·non-member 对象:手工初始化·成员初值表·加强你的设计:local static 对象替换 non-local static 对象Page127为“异常安全”而努力是值得的Lock ml(&mutex);异常安全函数满足其中之一:·基本承诺·强烈保证·不抛掷异常std::tr1::shared_ptr<>.reset()copy and swapPage 134透彻了解 inlining 的里里外外template <typename T>inline const T& std::max(const T& a, const T& b){ return a < b ? b : a;}一般不能 inlining 的:·循环·递归·virtualinline 函数被不被 inlined 取决于其调用的实施方式inline 更新 -> 重新编译重新连接动态连接不能被调试Page140将文件文件间的编译依存关系降至最低foctory 函数class Person{ public: static std::tr1::shared_ptr<> create();};·Handle classes·Interface classes解除了接口和实现之间的耦合关系解决编译依存性最小化:·声明式·Handle、Interface (收起)2011-04-02 14:49:34 回应
-
第78页
mark (毕业论文!!!)
设计与声明 Page78 让接口容易被正确使用,不易被误用 外覆类型 Page84 设计 class 犹如设计 type Page86 宁以 pass-by-reference-to-const 替换 pass-by-value 但是有三个例外: ·内置类型 ·函数对象 ·STL 迭代器 Page90 必须返回对象时别妄想返回其 reference 返回 reference 有针对三种情况: ·local stack ·heap-allocated ·local static 而应返回 object Page94 将成员变量声明为 priv... (更多)设计与声明Page78让接口容易被正确使用,不易被误用外覆类型Page84设计 class 犹如设计 typePage86宁以 pass-by-reference-to-const 替换 pass-by-value但是有三个例外:·内置类型·函数对象·STL 迭代器Page90必须返回对象时别妄想返回其 reference返回 reference 有针对三种情况:·local stack·heap-allocated·local static而应返回 objectPage94将成员变量声明为 private三个好处:·一致性·访问控制(不能访问,只读,只写,读写)·封装protected 与 public 一样都破坏了封装性Page98宁以 non-member、non-friend 替换 member 函数namespace ns{ }好处:·封装性·包裹弹性·技能扩充性 (收起)2011-03-31 13:29:10 回应
书评 · · · · · · (共18条) 我来评论这本书
热门评论 最新评论
Effective C++
-
- 空气 Effective C++ 非常经典的C++书籍,基本上学C++的人没有不知道这本书的。书中介绍了55个准则,每一条准则描述一个编写出更好的C++的方式。 书是一年半以前买的,那时刚刚学了一个学期C++(再之前一个学期学了C),算是把基本语法学完了,封装继承多态等面向对象知识也都有所了解。不过那时买来这本书一读......2008-06-05 14/17有用
轻松读《Effective C++ 2/e》
-
- 睡不醒还睡(努力做好外表正太内心大叔) 最近在读《Effective C++ 2/e》,不时被作者幽默的文字逗得发笑。可以这么说,这是我读过的最风趣的一本技术书。当然这也离不开侯捷大师精彩的翻译。如此轻松的翻下来,已经读完了全书的一半。当然,书中的内容都是基础性的C++内容,是每个C++程序员必须要掌握的知识。 举几处作者幽默的行文: ...... (7回应)2006-05-13 9/10有用来自 华中科技大学出版社2001版
C++程序员必读书籍
-
- KingsamChen(math,english,computer science) 无论你是通过CPP Primer还是其他从街上小摊贩出购买的山寨书进入C++世界,Scott Meyers的Effective C++都应该是在你阅读计划之内的一本书。 Effective C++不是告诉你什么是C++,也不会教你C++到底应该怎么用,而是告诉你如何真正的用好C++,因而更具针对性和实用性。 ......2011-05-19 来自 Addison-Wesley Professional2005版
C++经典
-
- dlmu2001 何谓经典,经典就是一本你看了一遍后,会告诉自己,过阵子我要再回来看看里面的内容,因为你知道,再看,你依然会有新的收获,收获并非来自书上的知识,而是因循着书中的思路,你看到了更深的东西。 Effective C++就是一本C++中的经典。每一个条款都像在你的思路中开了个口子,让你有机会去了解C++的特性,限制,深入到语......2011-01-23 来自 华中科技大学出版社2001版
非常好的书
-
- dynaswang 非常好的书。 尤其在刚入门C++的阶段,如果能仔细读上几遍,相信你的C++功力会产生飞跃。 书本页数比较小,读起来轻松惬意。性价比非常之高(读书花费时间/读书获得的收获) (字数字数字数字数字数字数字数,怎么老是不够)......2010-12-30 来自 华中科技大学出版社2001版
物超所值啊亲!!!
-
- Jerome(I'm not attached to your world) 当时我买这本书的时候觉得好贵啊!!!有木有!!!! 但是现在觉得好值啊!!!有木有!!!还包邮的啊亲!!!!!! 如果你读过这本书觉得没什么,那么你要么是牛人,要么是白痴(盗版某个对于Design Pattern的评价)......2011-04-04 来自 Addison-Wesley Professional2005版
Effective C++中文版
-
- 涅瓦纳(一个沉默的观影者与读书人) Effective C++是世界顶级C++大师Scott Meyers的成名之作,初版于1991年。在国际上,这本书所引起的反响之大,波及整个计算机技术出版领域,余音至今未绝。几乎在所有C++书籍的推荐名单上,这部专著都会位于前三名。作者高超的技术把握力,独特的视角、诙谐轻松的写作风格、独具匠心的内容组织,都受到极大的......2011-07-30 来自 华中科技大学出版社2001版
Effective C++
-
- 涅瓦纳(一个沉默的观影者与读书人) 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了 我看过了...... (1回应)2011-07-30 来自 Addison-Wesley Professional1997版
毕竟是C++经典的书
-
- Captain(Keep Walking,Captain) 从元旦开始看的,原计划四周看完的,拖延了两周。 书我就不发表意见了,是非常经典。也不厚。 看的是英文版的,感觉很痛快。 以后还是需要再把重点的Item再看一遍,很多东西记不住。 很多C++基本的东西都忘记了,接下来打算把C++ Primer再复习下。 还有本More Effect......2011-02-26 来自 Addison-Wesley Professional1997版
毕竟是经典的书籍
-
- Captain(Keep Walking,Captain) 从元旦开始看的,原计划四周看完的,拖延了两周。 书我就不发表意见了,是非常经典。也不厚。 看的是英文版的,感觉很痛快。 以后还是需要再把重点的Item再看一遍,很多东西记不住。 很多C++基本的东西都忘记了,接下来打算把C++ Primer再复习下。 还有本More Effect C++,打算3月份看完 K......2011-02-11 来自 华中科技大学出版社2001版
"Effective C++"的论坛 · · · · · ·
| 实至名归的经典,C程序员必备 | 来自亮晶晶 | 1 回应 | 2010-04-02 |
| C++之父最新力作《C++程序设计原理与实践》隆重上市! | 来自冬天里的阳光 | 2010-07-19 | |
| 翻译的语言风格太奇怪了 | 来自屎蛋 | 2010-03-16 | |
| 有人读过或正在读么~一起讨论下 | 来自[已注销] | 2009-05-15 | |
| 好书。。。 | 来自Lithium | 2009-02-27 |
> 浏览更多话题
在哪儿买这本书? · · · · · ·
- 北发图书网 (RMB 45.80)
- 查看1家网店价格 (45.80元起)
- 加入购书单 多本比价 批量购买 已在购书单
这本书的其他版本 · · · · · · ( 全部11 )
- 华中科技大学出版社版 2001-9 / 1151人读过 / 有售
- 碁峰版 2004 / 3人读过
- Addison-Wesley Professional版 2005-05-22 / 923人读过
- 电子工业出版社版 2006-3 / 44人读过
以下豆列推荐 · · · · · · (全部)
- 豆瓣评分>9的书(100人以上) (阿獠)
- 程序员最应该读的图书(中译版) (hongqn)
- 『书』好好学习C++ (悟怡)
- C/C++从入门到进阶必修书籍 (高博)
- 豆瓣评分>9的计算机图书 (DDD)
谁读这本书?
喜欢这本书的人常去的小组 · · · · · ·

- C++及编程 (5000)

- LISP (2013)

- 算法与数据结构 (4540)

- Haskell (889)

- china-pub网上书店 (779)

- 程序员书屋 (6501)

- 计算机科学 Computer Scie... (6025)

- Python编程 (19016)
喜欢这本书的人关注的活动 · · · · · ·
订阅关于Effective C++的评论:
feed: rss 2.0











