
6. Effective C++ 3rd Edition 中文版 第六章 (Item 32-40) (15)
fatalerror99
看不惯的事情越来越多了,想说点啥的冲动却越来越少了。
展开
-
[翻译] Effective C++, 3rd Edition, Chapter 6. Inheritance(继承)和 Object-Oriented Design(面向对象设计)
Chapter 6. Inheritance(继承)和 Object-Oriented Design(面向对象设计)作者:Scott Meyers译者:fatalerror99 (iTePubs Nirvana)发布:http://blog.youkuaiyun.com/fatalerror99/Object-oriented programming (OOP) 已经流行了差不多 20 年,翻译 2005-09-08 00:56:00 · 2153 阅读 · 0 评论 -
[翻译] Effective C++, 3rd Edition, Item 39: 谨慎使用 private inheritance(私有继承)(上)
Item 39: 谨慎使用 private inheritance(私有继承)作者:Scott Meyers译者:fatalerror99 (iTePubs Nirvana)发布:http://blog.youkuaiyun.com/fatalerror99/Item 32 论述了 C++ 将 public inheritance(公有继承)视为一个 is-a 关系。当给定一个 hierar翻译 2005-11-22 22:13:00 · 6269 阅读 · 0 评论 -
[翻译] Effective C++, 3rd Edition, Item 35: 考虑可选的 virtual functions(虚拟函数)的替代方法(下)
(点击此处,接上篇)The Strategy Pattern via tr1::function(经由 tr1::function 实现的策略模式)一旦你习惯了 templates(模板)和 implicit interfaces(隐式接口)(参见 Item 41)的应用,function-pointer-based(基于函数指针)的方法看上去就有些死板了。健康值的计算为什么必须是一个 f翻译 2005-11-10 23:46:00 · 2938 阅读 · 1 评论 -
[翻译] Effective C++, 3rd Edition, Item 38: 通过 composition(复合)模拟 "has-a"(有一个)或 "is-implemented-in-terms-of"(是根据……实现的)
Item 38: 通过 composition(复合)模拟 "has-a"(有一个)或 "is-implemented-in-terms-of"(是根据……实现的)作者:Scott Meyers译者:fatalerror99 (iTePubs Nirvana)发布:http://blog.youkuaiyun.com/fatalerror99/composition(复合)是在 object翻译 2005-11-18 00:05:00 · 4557 阅读 · 1 评论 -
[翻译] Effective C++, 3rd Edition, Item 39: 谨慎使用 private inheritance(私有继承)(下)
(点击此处,接上篇)因此我们就 inherit privately(秘密地继承):class Widget: private Timer {private: virtual void onTick() const; // look at Widget usage data, etc. ...};通过 private inheritance(私有继承)的能力,Ti翻译 2005-11-23 23:45:00 · 3682 阅读 · 4 评论 -
[翻译] Effective C++, 3rd Edition, Item 37: 绝不要重定义一个函数的 inherited default parameter value(通过继承得到的缺省参数值)
Item 37: 绝不要重定义一个函数的 inherited default parameter value(通过继承得到的缺省参数值)作者:Scott Meyers译者:fatalerror99 (iTePubs Nirvana)发布:http://blog.youkuaiyun.com/fatalerror99/我们直接着手简化这个话题。只有两种函数能被你 inherit(继承):vir翻译 2005-11-15 23:26:00 · 3773 阅读 · 4 评论 -
[翻译] Effective C++, 3rd Edition, Item 36: 绝不要重定义一个 inherited non-virtual function(通过继承得到的非虚拟函数)
Item 36: 绝不要重定义一个 inherited non-virtual function(通过继承得到的非虚拟函数)作者:Scott Meyers译者:fatalerror99 (iTePubs Nirvana)发布:http://blog.youkuaiyun.com/fatalerror99/假设我告诉你 class(类)D 从 class(类)B publicly derive翻译 2005-11-14 22:00:00 · 3800 阅读 · 5 评论 -
[翻译] Effective C++, 3rd Edition, Item 35: 考虑可选的 virtual functions(虚拟函数)的替代方法(上)
Item 35: 考虑可选的 virtual functions(虚拟函数)的替代方法作者:Scott Meyers译者:fatalerror99 (iTePubs Nirvana)发布:http://blog.youkuaiyun.com/fatalerror99/现在你工作在一个视频游戏上,你在游戏中为角色设计了一个 hierarchy(继承体系)。你的游戏中有着变化多端的恶劣环境,角色翻译 2005-11-08 23:12:00 · 4287 阅读 · 2 评论 -
[翻译] Effective C++, 3rd Edition, Item 34: 区分 inheritance of interface(接口继承)和 inheritance of implementation(实现继承)(下)
(点击此处,接上篇)现在,假设 XYZ 公司的财富增长了,决定引进一种新机型,Model C。Model C 在某些方面与 Model A 和 Model B 不同。特别是,它的飞行不同。XYZ 公司的程序员在 hierarchy(继承体系)中增加了 Model C 的 class,但是由于他们匆匆忙忙地让新的机型投入服务,他们忘记了重定义 fly function:class M翻译 2005-10-08 23:01:00 · 3134 阅读 · 4 评论 -
[翻译] Effective C++, 3rd Edition, Item 34: 区分 inheritance of interface(接口继承)和 inheritance of implementation(实现继承)(上)
Item 34: 区分 inheritance of interface(接口继承)和 inheritance of implementation(实现继承)作者:Scott Meyers译者:fatalerror99 (iTePubs Nirvana)发布:http://blog.youkuaiyun.com/fatalerror99/(public) inheritance 这个表面上简翻译 2005-09-23 02:01:00 · 4051 阅读 · 0 评论 -
[翻译] Effective C++, 3rd Edition, Item 33: 避免覆盖(hiding)“通过继承得到的名字”(下)
(点击此处,接上篇)这一行为背后的根本原因是为了防止“当你在一个 library 或者 application framework 中创建一个新的 derived class 时,偶然地发生从遥远的 base classes 继承 overloads 的情况”。不幸的是,一般情况下你是需要继承这些 overloads 的。实际上,如果你使用了 public inheritance 而又没有继承翻译 2005-09-16 23:51:00 · 2542 阅读 · 0 评论 -
[翻译] Effective C++, 3rd Edition, Item 32: 确保 public inheritance 模拟 "is-a"(下)
(点击此处,接上篇)你能说出其中的区别吗?从错误被发觉时间方面看。“企鹅不能飞”的禁令可以由编译器强令执行,但是对“让企鹅真的去飞是一个错误”的规约的违反,只有在运行时才能被发觉。为了表达“企鹅不能飞”这个限制,你要确保不要为 Penguin 对象定义这样的函数:class Bird { ... // no fly翻译 2005-09-11 22:52:00 · 2181 阅读 · 2 评论 -
[翻译] Effective C++, 3rd Edition, Item 33: 避免覆盖(hiding)“通过继承得到的名字”(上)
Item 33: 避免覆盖(hiding)“通过继承得到的名字”作者:Scott Meyers译者:fatalerror99 (iTePubs Nirvana)发布:http://blog.youkuaiyun.com/fatalerror99/莎士比亚有一个关于名字的说法。"Whats in a name?" 他问道,"A rose by any other name would sme翻译 2005-09-13 23:18:00 · 4563 阅读 · 4 评论 -
[翻译] Effective C++, 3rd Edition, Item 32: 确保 public inheritance 模拟 "is-a"(上)
Item 32: 确保 public inheritance 模拟 "is-a"作者:Scott Meyers译者:fatalerror99 (iTePubs Nirvana)发布:http://blog.youkuaiyun.com/fatalerror99/在 Some Must Watch While Some Must Sleep (W. H. Freeman and Com翻译 2005-09-09 00:43:00 · 3980 阅读 · 3 评论 -
[翻译] Effective C++, 3rd Edition, Item 40: 谨慎使用 multiple inheritance(多继承)
Item 40: 谨慎使用 multiple inheritance(多继承)作者:Scott Meyers译者:fatalerror99 (iTePubs Nirvana)发布:http://blog.youkuaiyun.com/fatalerror99/触及 multiple inheritance (MI)(多继承)的时候,C++ 社区就会鲜明地分裂为两个基本的阵营。一个阵营认为如果翻译 2005-11-25 22:15:00 · 4532 阅读 · 4 评论