洛译小筑

别来无恙,我的老友…
随笔 - 46, 文章 - 0, 评论 - 172, 引用 - 0
数据加载中……

Effective C++

[Effective C++中文版]补全
     摘要: 技术在进步,但思想永恒。
点击下载完整的 《Effective C++ 中文版》
Translated by Roy T.  阅读全文

posted @ 2018-04-12 23:43 ★ROY★ 阅读(151) | 评论 (0)  编辑

[ECPP读书笔记 条目39] 审慎使用私有继承
     摘要: ·私有继承意味着“A以B的形式实现”。通常它的优先级要低于组合,但是当派生类需要访问基类中受保护的成员,或者需要重定义派生的虚函数时,私有继承还是有其存在的合理性的。
·与组合不同,私有继承可以启用“空基类优化”特性。对于类库开发人员而言,私有继承对于降低对象尺寸来说至关重要。  阅读全文

posted @ 2012-10-12 23:39 ★ROY★ 阅读(1780) | 评论 (0)  编辑

[ECPP读书笔记 条目38] 使用组合来表示“A包含B”、“A以B的形式实现”
     摘要: 组合与公共继承之间存在着本质区别。
组合在应用域意味着“A是B”,在实现域意味着“A以B的形式实现”。  阅读全文

posted @ 2012-07-08 16:18 ★ROY★ 阅读(1672) | 评论 (2)  编辑

[ECPP读书笔记 条目37] 避免对函数中继承得来的默认参数值进行重定义
     摘要: 避免在对函数中继承得来的默认参数值进行重定义,这是因为默认参数值是静态绑定的,而虚函数是动态绑定的。  阅读全文

posted @ 2012-05-20 11:21 ★ROY★ 阅读(1902) | 评论 (0)  编辑

[ECPP读书笔记 条目36] 避免对派生的非虚函数进行重定义
     摘要: 避免对派生的非虚函数进行重定义  阅读全文

posted @ 2011-12-30 22:53 ★ROY★ 阅读(2037) | 评论 (1)  编辑

[ECPP读书笔记 条目35] 虚函数的替代方案
     摘要: 在你为当前的问题设计解决方案时,不妨考虑一下虚函数以外的其他替代方案。  阅读全文

posted @ 2011-12-25 00:59 ★ROY★ 阅读(2861) | 评论 (2)  编辑

[ECPP读书笔记 条目34] 区分清接口继承和实现继承
     摘要: 接口继承与实现继承存在着不同。在公共继承体系下,派生类总是继承基类的接口。
纯虚函数要求派生类仅继承接口。
简单(非纯)虚函数要求派生类在继承接口的同时继承默认的实现。
非虚函数要求派生类继承接口和强制内容的实现。
  阅读全文

posted @ 2008-07-06 22:58 ★ROY★ 阅读(2233) | 评论 (3)  编辑

[ECPP读书笔记 条目33] 避免隐藏继承而来的名字
     摘要: 祝劳动者节日快乐!
派生类中的名字会将基类中的名字隐藏起来。在公有继承体系下,这是我们所不希望见到的。
为了让被隐藏名字再次可见,可以使用using声明或者转发函数。
  阅读全文

posted @ 2008-05-01 01:11 ★ROY★ 阅读(2340) | 评论 (2)  编辑

[ECPP读书笔记 条目32] 确保公共继承以“A是一个B”形式进行
     摘要: 公共继承意味着“A是一个B”的关系。对于基类成立的一切都应该适用于派生类,因为派生类的对象就是一个基类对象。  阅读全文

posted @ 2008-03-17 22:55 ★ROY★ 阅读(1885) | 评论 (2)  编辑

[ECPP读书笔记 条目31] 尽量减少文件间的编译依赖
     摘要: 最小化编译依赖的基本理念就是使用声明依赖代替定义依赖。基于这一理念有两种实现方式,它们是:句柄类和接口类。
库头文件必须以完整、并且仅存在声明的形式出现。无论是否涉及模板。
  阅读全文

posted @ 2008-01-01 01:37 ★ROY★ 阅读(1941) | 评论 (7)  编辑

[ECPP读书笔记 条目30] 深入探究内联函数
     摘要: 仅仅对小型的、调用频率高的程序进行内联。这将简化你的调试操作,为底层更新提供方便,降低潜在的代码膨胀发生的可能,并且可以让程序获得更高的速度。
不要将模板声明为inline的,因为它们一般在头文件中出现。

  阅读全文

posted @ 2007-11-18 23:27 ★ROY★ 阅读(1464) | 评论 (1)  编辑

[ECPP读书笔记 条目29] 力求代码做到“异常安全”
     摘要: 异常安全的函数即使在异常抛出时,也不会带来资源泄露,同时也不允许数据结构遭到破坏。这类函数提供基本的、增强的、零异常的三个层面的异常安全保证。
增强保证可以通过复制并交换策略来实现,但是增强保证并不是对所有函数都适用。
函数所提供的异常安全保证通常不要强于其调用的函数中保证层次最弱的一个。
  阅读全文

posted @ 2007-10-04 21:53 ★ROY★ 阅读(1339) | 评论 (5)  编辑

[ECPP读书笔记 条目28] 不要返回指向对象内部部件的“句柄”
     摘要: 避免返回指向对象内部部件的句柄(引用、指针或迭代器)。这样做可以增强封装性,帮助const成员函数拥有更加“const”的行为,并且使“野句柄”出现的几率降至最低。  阅读全文

posted @ 2007-09-23 23:25 ★ROY★ 阅读(1006) | 评论 (2)  编辑

[ECPP读书笔记 条目27] 尽量少用转型操作
     摘要: 尽可能避免使用转型,尤其是在对性能敏感的代码中不要使用动态转型dynamic_cast。如果一个设计方案需要使用转型,要尝试寻求一条不需要转型的方案来取代。
在必须使用转型时,要尝试将其隐藏在一个函数中。这样客户端程序员就可以调用这些函数,而不是在他们自己的代码中使用转型。
要尽量使用C++风格的转型,避免使用怀旧风格的转型。现代的转型更易读,而且功能更为具体化。
  阅读全文

posted @ 2007-09-13 22:27 ★ROY★ 阅读(1158) | 评论 (3)  编辑

[ECPP读书笔记 条目26] 定义变量的时机越晚越好
     摘要: 定义变量的时机越晚越好。这可以提高程序的清晰度和工作效率。
  阅读全文

posted @ 2007-08-19 22:00 ★ROY★ 阅读(1057) | 评论 (0)  编辑

Full Effective C++ Archive