﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-The Blog of Nobody-随笔分类-Effective C++ </title><link>http://www.cppblog.com/tiandejian/category/3949.html</link><description>Welcome! You are in the middle of nowhere.
Windows Vista + Safari is recommended.</description><language>zh-cn</language><lastBuildDate>Mon, 19 May 2008 12:35:17 GMT</lastBuildDate><pubDate>Mon, 19 May 2008 12:35:17 GMT</pubDate><ttl>60</ttl><item><title>【读书笔记】[Effective C++第3版][第33条] 防止隐藏继承的名字</title><link>http://www.cppblog.com/tiandejian/archive/2008/05/01/EC_33.html</link><dc:creator>★ROY★</dc:creator><author>★ROY★</author><pubDate>Wed, 30 Apr 2008 17:11:00 GMT</pubDate><guid>http://www.cppblog.com/tiandejian/archive/2008/05/01/EC_33.html</guid><wfw:comment>http://www.cppblog.com/tiandejian/comments/48565.html</wfw:comment><comments>http://www.cppblog.com/tiandejian/archive/2008/05/01/EC_33.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/tiandejian/comments/commentRss/48565.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tiandejian/services/trackbacks/48565.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: <br>祝劳动者节日快乐！<br>l  派生类中的名字会将基类中的名字隐藏起来。在公有继承体系下，这是我们所不希望见到的。<br>l  为了让被隐藏名字再次可见，可以使用using声明或者转发函数。<br>&nbsp;&nbsp;<a href='http://www.cppblog.com/tiandejian/archive/2008/05/01/EC_33.html'>阅读全文</a><img src ="http://www.cppblog.com/tiandejian/aggbug/48565.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tiandejian/" target="_blank">★ROY★</a> 2008-05-01 01:11 <a href="http://www.cppblog.com/tiandejian/archive/2008/05/01/EC_33.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【读书笔记】[Effective C++第3版][第32条] 确保公共继承以“A是一个B”形式进行</title><link>http://www.cppblog.com/tiandejian/archive/2008/03/17/ec_32.html</link><dc:creator>★ROY★</dc:creator><author>★ROY★</author><pubDate>Mon, 17 Mar 2008 14:55:00 GMT</pubDate><guid>http://www.cppblog.com/tiandejian/archive/2008/03/17/ec_32.html</guid><wfw:comment>http://www.cppblog.com/tiandejian/comments/44718.html</wfw:comment><comments>http://www.cppblog.com/tiandejian/archive/2008/03/17/ec_32.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/tiandejian/comments/commentRss/44718.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tiandejian/services/trackbacks/44718.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 公共继承意味着“A是一个B”的关系。对于基类成立的一切都应该适用于派生类，因为派生类的对象就是一个基类对象。&nbsp;&nbsp;<a href='http://www.cppblog.com/tiandejian/archive/2008/03/17/ec_32.html'>阅读全文</a><img src ="http://www.cppblog.com/tiandejian/aggbug/44718.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tiandejian/" target="_blank">★ROY★</a> 2008-03-17 22:55 <a href="http://www.cppblog.com/tiandejian/archive/2008/03/17/ec_32.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【读书笔记】[Effective C++第3版][第31条]  要努力减少文件间的编译依赖</title><link>http://www.cppblog.com/tiandejian/archive/2008/01/01/ec_31.html</link><dc:creator>★ROY★</dc:creator><author>★ROY★</author><pubDate>Mon, 31 Dec 2007 17:37:00 GMT</pubDate><guid>http://www.cppblog.com/tiandejian/archive/2008/01/01/ec_31.html</guid><wfw:comment>http://www.cppblog.com/tiandejian/comments/40082.html</wfw:comment><comments>http://www.cppblog.com/tiandejian/archive/2008/01/01/ec_31.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.cppblog.com/tiandejian/comments/commentRss/40082.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tiandejian/services/trackbacks/40082.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: <br>最小化编译依赖的基本理念就是使用声明依赖代替定义依赖。基于这一理念有两种实现方式，它们是：句柄类和接口类。<br>库头文件必须以完整、并且仅存在声明的形式出现。无论是否涉及模板。<br>&nbsp;&nbsp;<a href='http://www.cppblog.com/tiandejian/archive/2008/01/01/ec_31.html'>阅读全文</a><img src ="http://www.cppblog.com/tiandejian/aggbug/40082.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tiandejian/" target="_blank">★ROY★</a> 2008-01-01 01:37 <a href="http://www.cppblog.com/tiandejian/archive/2008/01/01/ec_31.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【读书笔记】[Effective C++第3版][第30条] 深入探究内联函数</title><link>http://www.cppblog.com/tiandejian/archive/2007/11/18/ec_30.html</link><dc:creator>★ROY★</dc:creator><author>★ROY★</author><pubDate>Sun, 18 Nov 2007 15:27:00 GMT</pubDate><guid>http://www.cppblog.com/tiandejian/archive/2007/11/18/ec_30.html</guid><wfw:comment>http://www.cppblog.com/tiandejian/comments/36909.html</wfw:comment><comments>http://www.cppblog.com/tiandejian/archive/2007/11/18/ec_30.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/tiandejian/comments/commentRss/36909.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tiandejian/services/trackbacks/36909.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 仅仅对小型的、调用频率高的程序进行内联。这将简化你的调试操作，为底层更新提供方便，降低潜在的代码膨胀发生的可能，并且可以让程序获得更高的速度。<br>不要将模板声明为inline的，因为它们一般在头文件中出现。<br><br>&nbsp;&nbsp;<a href='http://www.cppblog.com/tiandejian/archive/2007/11/18/ec_30.html'>阅读全文</a><img src ="http://www.cppblog.com/tiandejian/aggbug/36909.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tiandejian/" target="_blank">★ROY★</a> 2007-11-18 23:27 <a href="http://www.cppblog.com/tiandejian/archive/2007/11/18/ec_30.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【读书笔记】[Effective C++第3版][第29条] 力求使代码做到“异常安全”</title><link>http://www.cppblog.com/tiandejian/archive/2007/10/04/ec_29.html</link><dc:creator>★ROY★</dc:creator><author>★ROY★</author><pubDate>Thu, 04 Oct 2007 13:53:00 GMT</pubDate><guid>http://www.cppblog.com/tiandejian/archive/2007/10/04/ec_29.html</guid><wfw:comment>http://www.cppblog.com/tiandejian/comments/33454.html</wfw:comment><comments>http://www.cppblog.com/tiandejian/archive/2007/10/04/ec_29.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.cppblog.com/tiandejian/comments/commentRss/33454.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tiandejian/services/trackbacks/33454.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: <br>异常安全的函数即使在异常抛出时，也不会带来资源泄露，同时也不允许数据结构遭到破坏。这类函数提供基本的、增强的、零异常的三个层面的异常安全保证。<br>增强保证可以通过复制并交换策略来实现，但是增强保证并不是对所有函数都适用。<br>函数所提供的异常安全保证通常不要强于其调用的函数中保证层次最弱的一个。<br>&nbsp;&nbsp;<a href='http://www.cppblog.com/tiandejian/archive/2007/10/04/ec_29.html'>阅读全文</a><img src ="http://www.cppblog.com/tiandejian/aggbug/33454.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tiandejian/" target="_blank">★ROY★</a> 2007-10-04 21:53 <a href="http://www.cppblog.com/tiandejian/archive/2007/10/04/ec_29.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【读书笔记】[Effective C++第3版][第28条]不要返回指向对象内部部件的“句柄” </title><link>http://www.cppblog.com/tiandejian/archive/2007/09/23/ec_28.html</link><dc:creator>★ROY★</dc:creator><author>★ROY★</author><pubDate>Sun, 23 Sep 2007 15:25:00 GMT</pubDate><guid>http://www.cppblog.com/tiandejian/archive/2007/09/23/ec_28.html</guid><wfw:comment>http://www.cppblog.com/tiandejian/comments/32753.html</wfw:comment><comments>http://www.cppblog.com/tiandejian/archive/2007/09/23/ec_28.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/tiandejian/comments/commentRss/32753.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tiandejian/services/trackbacks/32753.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 避免返回指向对象内部部件的句柄（引用、指针或迭代器）。这样做可以增强封装性，帮助const成员函数拥有更加“const”的行为，并且使“野句柄”出现的几率降至最低。&nbsp;&nbsp;<a href='http://www.cppblog.com/tiandejian/archive/2007/09/23/ec_28.html'>阅读全文</a><img src ="http://www.cppblog.com/tiandejian/aggbug/32753.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tiandejian/" target="_blank">★ROY★</a> 2007-09-23 23:25 <a href="http://www.cppblog.com/tiandejian/archive/2007/09/23/ec_28.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【读书笔记】[Effective C++第3版][第27条]尽量不要使用类型转换</title><link>http://www.cppblog.com/tiandejian/archive/2007/09/13/ec_27.html</link><dc:creator>★ROY★</dc:creator><author>★ROY★</author><pubDate>Thu, 13 Sep 2007 14:27:00 GMT</pubDate><guid>http://www.cppblog.com/tiandejian/archive/2007/09/13/ec_27.html</guid><wfw:comment>http://www.cppblog.com/tiandejian/comments/32172.html</wfw:comment><comments>http://www.cppblog.com/tiandejian/archive/2007/09/13/ec_27.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cppblog.com/tiandejian/comments/commentRss/32172.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tiandejian/services/trackbacks/32172.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: <br>尽可能避免使用转型，尤其是在对性能敏感的代码中不要使用动态转型dynamic_cast。如果一个设计方案需要使用转型，要尝试寻求一条不需要转型的方案来取代。<br>在必须使用转型时，要尝试将其隐藏在一个函数中。这样客户端程序员就可以调用这些函数，而不是在他们自己的代码中使用转型。<br> 要尽量使用C++风格的转型，避免使用怀旧风格的转型。现代的转型更易读，而且功能更为具体化。<br>&nbsp;&nbsp;<a href='http://www.cppblog.com/tiandejian/archive/2007/09/13/ec_27.html'>阅读全文</a><img src ="http://www.cppblog.com/tiandejian/aggbug/32172.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tiandejian/" target="_blank">★ROY★</a> 2007-09-13 22:27 <a href="http://www.cppblog.com/tiandejian/archive/2007/09/13/ec_27.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【读书笔记】[Effective C++第3版][第26条]定义变量的时机越晚越好</title><link>http://www.cppblog.com/tiandejian/archive/2007/08/19/EC_26.html</link><dc:creator>★ROY★</dc:creator><author>★ROY★</author><pubDate>Sun, 19 Aug 2007 14:00:00 GMT</pubDate><guid>http://www.cppblog.com/tiandejian/archive/2007/08/19/EC_26.html</guid><wfw:comment>http://www.cppblog.com/tiandejian/comments/30383.html</wfw:comment><comments>http://www.cppblog.com/tiandejian/archive/2007/08/19/EC_26.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tiandejian/comments/commentRss/30383.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tiandejian/services/trackbacks/30383.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: <br>定义变量的时机越晚越好。这可以提高程序的清晰度和工作效率。<br>&nbsp;&nbsp;<a href='http://www.cppblog.com/tiandejian/archive/2007/08/19/EC_26.html'>阅读全文</a><img src ="http://www.cppblog.com/tiandejian/aggbug/30383.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tiandejian/" target="_blank">★ROY★</a> 2007-08-19 22:00 <a href="http://www.cppblog.com/tiandejian/archive/2007/08/19/EC_26.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【读书笔记】[Effective C++第3版][第25条]最好不要让交换数值函数swap抛出异常</title><link>http://www.cppblog.com/tiandejian/archive/2007/08/02/ec_25.html</link><dc:creator>★ROY★</dc:creator><author>★ROY★</author><pubDate>Thu, 02 Aug 2007 14:05:00 GMT</pubDate><guid>http://www.cppblog.com/tiandejian/archive/2007/08/02/ec_25.html</guid><wfw:comment>http://www.cppblog.com/tiandejian/comments/29232.html</wfw:comment><comments>http://www.cppblog.com/tiandejian/archive/2007/08/02/ec_25.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cppblog.com/tiandejian/comments/commentRss/29232.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tiandejian/services/trackbacks/29232.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: swap是一个非常有趣的程序。它最早是作为STL的一部分引入C++的，而后就成为了异常安全编程的主体内容，另外对于可以自赋值的对象而言它还是一个常用的复制处理机制。由于swap如此神通广大，那么以一个恰当的方式去实现它就显得十分重要了，但是它的举足轻重的地位也决定了实现它并不是一件手到擒来的事情。在本小节中，我们就会针对swap函数展开探索，逐步掌握如何去驾驭它。<br><br>&nbsp;&nbsp;<a href='http://www.cppblog.com/tiandejian/archive/2007/08/02/ec_25.html'>阅读全文</a><img src ="http://www.cppblog.com/tiandejian/aggbug/29232.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tiandejian/" target="_blank">★ROY★</a> 2007-08-02 22:05 <a href="http://www.cppblog.com/tiandejian/archive/2007/08/02/ec_25.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【翻译】[Effective C++中文版第3版][第24条]当函数所有的参数需要进行类型转换时，要将其声明为非成员函数</title><link>http://www.cppblog.com/tiandejian/archive/2007/07/05/ec_24.html</link><dc:creator>★ROY★</dc:creator><author>★ROY★</author><pubDate>Thu, 05 Jul 2007 15:23:00 GMT</pubDate><guid>http://www.cppblog.com/tiandejian/archive/2007/07/05/ec_24.html</guid><wfw:comment>http://www.cppblog.com/tiandejian/comments/27578.html</wfw:comment><comments>http://www.cppblog.com/tiandejian/archive/2007/07/05/ec_24.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/tiandejian/comments/commentRss/27578.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tiandejian/services/trackbacks/27578.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 如果你需要对一个函数的所有参数进行类型转换，那么它必须是一个非成员函数。&nbsp;&nbsp;<a href='http://www.cppblog.com/tiandejian/archive/2007/07/05/ec_24.html'>阅读全文</a><img src ="http://www.cppblog.com/tiandejian/aggbug/27578.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tiandejian/" target="_blank">★ROY★</a> 2007-07-05 23:23 <a href="http://www.cppblog.com/tiandejian/archive/2007/07/05/ec_24.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【翻译】[Effective C++中文版第3版][第23条]尽量使用非成员非友元函数，而不是成员函数</title><link>http://www.cppblog.com/tiandejian/archive/2007/06/11/ec_23.html</link><dc:creator>★ROY★</dc:creator><author>★ROY★</author><pubDate>Mon, 11 Jun 2007 14:27:00 GMT</pubDate><guid>http://www.cppblog.com/tiandejian/archive/2007/06/11/ec_23.html</guid><wfw:comment>http://www.cppblog.com/tiandejian/comments/26108.html</wfw:comment><comments>http://www.cppblog.com/tiandejian/archive/2007/06/11/ec_23.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tiandejian/comments/commentRss/26108.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tiandejian/services/trackbacks/26108.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: <br>在特性情况下要更趋向于使用非成员非友元函数，而不是成员函数。这样做可以增强封装性，以及包装的灵活性和功能扩展性。<br>&nbsp;&nbsp;<a href='http://www.cppblog.com/tiandejian/archive/2007/06/11/ec_23.html'>阅读全文</a><img src ="http://www.cppblog.com/tiandejian/aggbug/26108.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tiandejian/" target="_blank">★ROY★</a> 2007-06-11 22:27 <a href="http://www.cppblog.com/tiandejian/archive/2007/06/11/ec_23.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【翻译】[Effective C++中文版第3版][第22条]尽量将数据成员声明为私有的</title><link>http://www.cppblog.com/tiandejian/archive/2007/06/06/ec_22.html</link><dc:creator>★ROY★</dc:creator><author>★ROY★</author><pubDate>Wed, 06 Jun 2007 10:37:00 GMT</pubDate><guid>http://www.cppblog.com/tiandejian/archive/2007/06/06/ec_22.html</guid><wfw:comment>http://www.cppblog.com/tiandejian/comments/25675.html</wfw:comment><comments>http://www.cppblog.com/tiandejian/archive/2007/06/06/ec_22.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tiandejian/comments/commentRss/25675.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tiandejian/services/trackbacks/25675.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: <br>要将数据成员声明为私有的。这样可以让客户端访问数据时拥有一致的语义，提供有条不紊的访问控制，强制类符合一致性，为类作者提供更高的灵活性。<br>protected并不会带来比public更高的封装性。<br>&nbsp;&nbsp;<a href='http://www.cppblog.com/tiandejian/archive/2007/06/06/ec_22.html'>阅读全文</a><img src ="http://www.cppblog.com/tiandejian/aggbug/25675.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tiandejian/" target="_blank">★ROY★</a> 2007-06-06 18:37 <a href="http://www.cppblog.com/tiandejian/archive/2007/06/06/ec_22.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【翻译】[Effective C++中文版第3版][第21条]在必须返回一个对象时，不要去尝试返回一个引用</title><link>http://www.cppblog.com/tiandejian/archive/2007/06/02/ec_21.html</link><dc:creator>★ROY★</dc:creator><author>★ROY★</author><pubDate>Sat, 02 Jun 2007 13:13:00 GMT</pubDate><guid>http://www.cppblog.com/tiandejian/archive/2007/06/02/ec_21.html</guid><wfw:comment>http://www.cppblog.com/tiandejian/comments/25355.html</wfw:comment><comments>http://www.cppblog.com/tiandejian/archive/2007/06/02/ec_21.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/tiandejian/comments/commentRss/25355.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tiandejian/services/trackbacks/25355.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: <br>不要返回一个指向局部的、分配于栈上的对象；不要返回一个引用去指向分配于堆上的对象；不要返回一个指向局部静态对象的指针或引用。<br>&nbsp;&nbsp;<a href='http://www.cppblog.com/tiandejian/archive/2007/06/02/ec_21.html'>阅读全文</a><img src ="http://www.cppblog.com/tiandejian/aggbug/25355.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tiandejian/" target="_blank">★ROY★</a> 2007-06-02 21:13 <a href="http://www.cppblog.com/tiandejian/archive/2007/06/02/ec_21.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【翻译】[Effective C++第三版•中文版][第20条]尽量使用“引用常量”传参，而不是传值</title><link>http://www.cppblog.com/tiandejian/archive/2007/06/01/ec_20.html</link><dc:creator>★ROY★</dc:creator><author>★ROY★</author><pubDate>Fri, 01 Jun 2007 10:12:00 GMT</pubDate><guid>http://www.cppblog.com/tiandejian/archive/2007/06/01/ec_20.html</guid><wfw:comment>http://www.cppblog.com/tiandejian/comments/25292.html</wfw:comment><comments>http://www.cppblog.com/tiandejian/archive/2007/06/01/ec_20.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cppblog.com/tiandejian/comments/commentRss/25292.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tiandejian/services/trackbacks/25292.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: <br>尽量使用引用常量传参，而不是传值方式。因为传引用更高效，而且可以避免“截断问题”。<br>对于内建数据类型、STL迭代和函数对象类型，通常传值方式更实用。<br>&nbsp;&nbsp;<a href='http://www.cppblog.com/tiandejian/archive/2007/06/01/ec_20.html'>阅读全文</a><img src ="http://www.cppblog.com/tiandejian/aggbug/25292.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tiandejian/" target="_blank">★ROY★</a> 2007-06-01 18:12 <a href="http://www.cppblog.com/tiandejian/archive/2007/06/01/ec_20.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【翻译】[Effective C++第三版•中文版][第19条]要像设计类型一样设计class</title><link>http://www.cppblog.com/tiandejian/archive/2007/05/20/ec_19.html</link><dc:creator>★ROY★</dc:creator><author>★ROY★</author><pubDate>Sun, 20 May 2007 15:30:00 GMT</pubDate><guid>http://www.cppblog.com/tiandejian/archive/2007/05/20/ec_19.html</guid><wfw:comment>http://www.cppblog.com/tiandejian/comments/24496.html</wfw:comment><comments>http://www.cppblog.com/tiandejian/archive/2007/05/20/ec_19.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/tiandejian/comments/commentRss/24496.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tiandejian/services/trackbacks/24496.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: class设计就是类型的设计。在定义一个新的类型之前，要确保将本条目中所有的问题考虑周全。&nbsp;&nbsp;<a href='http://www.cppblog.com/tiandejian/archive/2007/05/20/ec_19.html'>阅读全文</a><img src ="http://www.cppblog.com/tiandejian/aggbug/24496.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tiandejian/" target="_blank">★ROY★</a> 2007-05-20 23:30 <a href="http://www.cppblog.com/tiandejian/archive/2007/05/20/ec_19.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【翻译】[Effective C++第三版•中文版][第18条]要让接口易于正确使用，而不易被误用</title><link>http://www.cppblog.com/tiandejian/archive/2007/05/18/cp_18.html</link><dc:creator>★ROY★</dc:creator><author>★ROY★</author><pubDate>Fri, 18 May 2007 15:30:00 GMT</pubDate><guid>http://www.cppblog.com/tiandejian/archive/2007/05/18/cp_18.html</guid><wfw:comment>http://www.cppblog.com/tiandejian/comments/24354.html</wfw:comment><comments>http://www.cppblog.com/tiandejian/archive/2007/05/18/cp_18.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tiandejian/comments/commentRss/24354.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tiandejian/services/trackbacks/24354.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: <br>优秀的接口应该易于正确使用，而不易误用。对所有的接口都应该力争做到这一点。<br>保持与内置数据类型有一致的行为，是使接口易于正确使用的一种可行的方法<br>防止错误发生的方法有：创建新的数据类型，严格限定类型的操作，约束对象的值，不要将管理资源的任务留给客户端程序员。<br>tr1::shared_ptr支持自定义的删除功能。这可以防止“跨DLL问题”，可以应用与自动解开互斥锁等情况。<br>&nbsp;&nbsp;<a href='http://www.cppblog.com/tiandejian/archive/2007/05/18/cp_18.html'>阅读全文</a><img src ="http://www.cppblog.com/tiandejian/aggbug/24354.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tiandejian/" target="_blank">★ROY★</a> 2007-05-18 23:30 <a href="http://www.cppblog.com/tiandejian/archive/2007/05/18/cp_18.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【翻译】[Effective C++第三版•中文版][第17条]要在单独的语句中使用智能指针来存储由new创建的对象</title><link>http://www.cppblog.com/tiandejian/archive/2007/05/15/ec_17.html</link><dc:creator>★ROY★</dc:creator><author>★ROY★</author><pubDate>Tue, 15 May 2007 15:12:00 GMT</pubDate><guid>http://www.cppblog.com/tiandejian/archive/2007/05/15/ec_17.html</guid><wfw:comment>http://www.cppblog.com/tiandejian/comments/24175.html</wfw:comment><comments>http://www.cppblog.com/tiandejian/archive/2007/05/15/ec_17.html#Feedback</comments><slash:comments>25</slash:comments><wfw:commentRss>http://www.cppblog.com/tiandejian/comments/commentRss/24175.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tiandejian/services/trackbacks/24175.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: <br>在单独的语句中使用智能指针来保存由new创建的对象。如果不这样做，你的程序会在抛出异常时发生资源泄漏。<br>&nbsp;&nbsp;<a href='http://www.cppblog.com/tiandejian/archive/2007/05/15/ec_17.html'>阅读全文</a><img src ="http://www.cppblog.com/tiandejian/aggbug/24175.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tiandejian/" target="_blank">★ROY★</a> 2007-05-15 23:12 <a href="http://www.cppblog.com/tiandejian/archive/2007/05/15/ec_17.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【翻译】[Effective C++第三版•中文版][第16条]互相联系的new和delete要使用同样的形式</title><link>http://www.cppblog.com/tiandejian/archive/2007/05/14/ec_16.html</link><dc:creator>★ROY★</dc:creator><author>★ROY★</author><pubDate>Mon, 14 May 2007 14:15:00 GMT</pubDate><guid>http://www.cppblog.com/tiandejian/archive/2007/05/14/ec_16.html</guid><wfw:comment>http://www.cppblog.com/tiandejian/comments/24115.html</wfw:comment><comments>http://www.cppblog.com/tiandejian/archive/2007/05/14/ec_16.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tiandejian/comments/commentRss/24115.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tiandejian/services/trackbacks/24115.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: <br>如果你在一个new语句中使用了[]，那么你必须要在相关的delete语句中使用[]。如果你在new语句中没有使用[]，那么在相关的delete语句中一定不要出现[]。<br>&nbsp;&nbsp;<a href='http://www.cppblog.com/tiandejian/archive/2007/05/14/ec_16.html'>阅读全文</a><img src ="http://www.cppblog.com/tiandejian/aggbug/24115.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tiandejian/" target="_blank">★ROY★</a> 2007-05-14 22:15 <a href="http://www.cppblog.com/tiandejian/archive/2007/05/14/ec_16.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【翻译】[Effective C++第三版•中文版][第15条]要为资源管理类提供对原始资源的访问权</title><link>http://www.cppblog.com/tiandejian/archive/2007/05/13/cp_15.html</link><dc:creator>★ROY★</dc:creator><author>★ROY★</author><pubDate>Sun, 13 May 2007 12:54:00 GMT</pubDate><guid>http://www.cppblog.com/tiandejian/archive/2007/05/13/cp_15.html</guid><wfw:comment>http://www.cppblog.com/tiandejian/comments/24063.html</wfw:comment><comments>http://www.cppblog.com/tiandejian/archive/2007/05/13/cp_15.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tiandejian/comments/commentRss/24063.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tiandejian/services/trackbacks/24063.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: <br>API通常需要访问原始资源，因此每个RAII类都应该提供一个途径来获取它所管理的资源。<br>访问可以通过显式转换或隐式转换来实现。一般情况下，显式转换更安全，但是隐式转换对于客户端程序员来说使用更方便。<br>&nbsp;&nbsp;<a href='http://www.cppblog.com/tiandejian/archive/2007/05/13/cp_15.html'>阅读全文</a><img src ="http://www.cppblog.com/tiandejian/aggbug/24063.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tiandejian/" target="_blank">★ROY★</a> 2007-05-13 20:54 <a href="http://www.cppblog.com/tiandejian/archive/2007/05/13/cp_15.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【翻译】[Effective C++第三版•中文版][第14条]要留心资源管理类中的复制行为</title><link>http://www.cppblog.com/tiandejian/archive/2007/05/11/ec_14.html</link><dc:creator>★ROY★</dc:creator><author>★ROY★</author><pubDate>Fri, 11 May 2007 10:40:00 GMT</pubDate><guid>http://www.cppblog.com/tiandejian/archive/2007/05/11/ec_14.html</guid><wfw:comment>http://www.cppblog.com/tiandejian/comments/23921.html</wfw:comment><comments>http://www.cppblog.com/tiandejian/archive/2007/05/11/ec_14.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/tiandejian/comments/commentRss/23921.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tiandejian/services/trackbacks/23921.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: <br>复制一个RAII对象的同时也要复制其所管理的对象，所以资源管理的复制行为由RAII对象的复制行为决定。<br>一般的RAII类在复制时应遵循两条原则：不允许使用复制，要进行资源计数。<br>&nbsp;&nbsp;<a href='http://www.cppblog.com/tiandejian/archive/2007/05/11/ec_14.html'>阅读全文</a><img src ="http://www.cppblog.com/tiandejian/aggbug/23921.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tiandejian/" target="_blank">★ROY★</a> 2007-05-11 18:40 <a href="http://www.cppblog.com/tiandejian/archive/2007/05/11/ec_14.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【翻译】[Effective C++第三版•中文版][第13条]使用对象来管理资源</title><link>http://www.cppblog.com/tiandejian/archive/2007/05/07/ECPP_13.html</link><dc:creator>★ROY★</dc:creator><author>★ROY★</author><pubDate>Mon, 07 May 2007 10:52:00 GMT</pubDate><guid>http://www.cppblog.com/tiandejian/archive/2007/05/07/ECPP_13.html</guid><wfw:comment>http://www.cppblog.com/tiandejian/comments/23573.html</wfw:comment><comments>http://www.cppblog.com/tiandejian/archive/2007/05/07/ECPP_13.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tiandejian/comments/commentRss/23573.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tiandejian/services/trackbacks/23573.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: <br>为了避免资源泄漏，可以使用RAII对象，使用构造函数获取资源，析构函数释放资源。<br>auto_ptr或TR1::shared_ptr是两个常用并且实用的RAII类。通常情况下TR1::shared_ptr是更好的选择，因为它的复制行为更加直观。复制一个auto_ptr将会使其重设为null。<br>&nbsp;&nbsp;<a href='http://www.cppblog.com/tiandejian/archive/2007/05/07/ECPP_13.html'>阅读全文</a><img src ="http://www.cppblog.com/tiandejian/aggbug/23573.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tiandejian/" target="_blank">★ROY★</a> 2007-05-07 18:52 <a href="http://www.cppblog.com/tiandejian/archive/2007/05/07/ECPP_13.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【翻译】Effective C++ (第12条：要复制整个对象，不要遗漏任一部分)</title><link>http://www.cppblog.com/tiandejian/archive/2007/05/03/ECPP_12.html</link><dc:creator>★ROY★</dc:creator><author>★ROY★</author><pubDate>Thu, 03 May 2007 13:15:00 GMT</pubDate><guid>http://www.cppblog.com/tiandejian/archive/2007/05/03/ECPP_12.html</guid><wfw:comment>http://www.cppblog.com/tiandejian/comments/23381.html</wfw:comment><comments>http://www.cppblog.com/tiandejian/archive/2007/05/03/ECPP_12.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tiandejian/comments/commentRss/23381.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tiandejian/services/trackbacks/23381.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 要确保拷贝函数拷贝对象的所有的数据成员，及其基类的所有部分，不要有遗漏。<br>不要尝试去实现一个拷贝函数来供其它的拷贝函数调用。取而代之的是，把公共部分放入一个“第三方函数”中共所有拷贝函数调用。<br>&nbsp;&nbsp;<a href='http://www.cppblog.com/tiandejian/archive/2007/05/03/ECPP_12.html'>阅读全文</a><img src ="http://www.cppblog.com/tiandejian/aggbug/23381.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tiandejian/" target="_blank">★ROY★</a> 2007-05-03 21:15 <a href="http://www.cppblog.com/tiandejian/archive/2007/05/03/ECPP_12.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【翻译】Effective C++ (第11条：在operator=中要考虑到自赋值问题)</title><link>http://www.cppblog.com/tiandejian/archive/2007/04/30/ECPP_11.html</link><dc:creator>★ROY★</dc:creator><author>★ROY★</author><pubDate>Mon, 30 Apr 2007 10:38:00 GMT</pubDate><guid>http://www.cppblog.com/tiandejian/archive/2007/04/30/ECPP_11.html</guid><wfw:comment>http://www.cppblog.com/tiandejian/comments/23254.html</wfw:comment><comments>http://www.cppblog.com/tiandejian/archive/2007/04/30/ECPP_11.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/tiandejian/comments/commentRss/23254.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tiandejian/services/trackbacks/23254.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 劳动者万岁！<br>在一个对象为自己赋值时，要确保operator=可以正常地运行。可以使用的技术有：比较源对象和目标对象的地址、谨慎安排语句、以及“复制并交换”。<br>在两个或两个以上的对象完全一样时，要确保对于这些重复对象的操作可以正常运行。<br>&nbsp;&nbsp;<a href='http://www.cppblog.com/tiandejian/archive/2007/04/30/ECPP_11.html'>阅读全文</a><img src ="http://www.cppblog.com/tiandejian/aggbug/23254.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tiandejian/" target="_blank">★ROY★</a> 2007-04-30 18:38 <a href="http://www.cppblog.com/tiandejian/archive/2007/04/30/ECPP_11.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【翻译】Effective C++ (第10条：让赋值运算符返回一个指向*this的引用)</title><link>http://www.cppblog.com/tiandejian/archive/2007/04/28/ECPP_10.html</link><dc:creator>★ROY★</dc:creator><author>★ROY★</author><pubDate>Sat, 28 Apr 2007 12:35:00 GMT</pubDate><guid>http://www.cppblog.com/tiandejian/archive/2007/04/28/ECPP_10.html</guid><wfw:comment>http://www.cppblog.com/tiandejian/comments/23136.html</wfw:comment><comments>http://www.cppblog.com/tiandejian/archive/2007/04/28/ECPP_10.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cppblog.com/tiandejian/comments/commentRss/23136.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tiandejian/services/trackbacks/23136.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 让赋值运算符返回一个指向*this的引用。<br>&nbsp;&nbsp;<a href='http://www.cppblog.com/tiandejian/archive/2007/04/28/ECPP_10.html'>阅读全文</a><img src ="http://www.cppblog.com/tiandejian/aggbug/23136.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tiandejian/" target="_blank">★ROY★</a> 2007-04-28 20:35 <a href="http://www.cppblog.com/tiandejian/archive/2007/04/28/ECPP_10.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【翻译】Effective C++ (第9条：永远不要在构造或析构的过程中调用虚函数)</title><link>http://www.cppblog.com/tiandejian/archive/2007/04/27/ECPP_09.html</link><dc:creator>★ROY★</dc:creator><author>★ROY★</author><pubDate>Fri, 27 Apr 2007 14:37:00 GMT</pubDate><guid>http://www.cppblog.com/tiandejian/archive/2007/04/27/ECPP_09.html</guid><wfw:comment>http://www.cppblog.com/tiandejian/comments/23070.html</wfw:comment><comments>http://www.cppblog.com/tiandejian/archive/2007/04/27/ECPP_09.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cppblog.com/tiandejian/comments/commentRss/23070.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tiandejian/services/trackbacks/23070.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 在程序进行构造或析构期间，你绝不能调用虚函数，这是因为这样的调用并不会按你所期望的执行，即使能够顺利执行，你也不会觉得十分舒服。<br>&nbsp;&nbsp;<a href='http://www.cppblog.com/tiandejian/archive/2007/04/27/ECPP_09.html'>阅读全文</a><img src ="http://www.cppblog.com/tiandejian/aggbug/23070.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tiandejian/" target="_blank">★ROY★</a> 2007-04-27 22:37 <a href="http://www.cppblog.com/tiandejian/archive/2007/04/27/ECPP_09.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【翻译】Effective C++ (第8条：防止因异常而中止析构函数)</title><link>http://www.cppblog.com/tiandejian/archive/2007/04/22/ECPP_08.html</link><dc:creator>★ROY★</dc:creator><author>★ROY★</author><pubDate>Sun, 22 Apr 2007 06:00:00 GMT</pubDate><guid>http://www.cppblog.com/tiandejian/archive/2007/04/22/ECPP_08.html</guid><wfw:comment>http://www.cppblog.com/tiandejian/comments/22584.html</wfw:comment><comments>http://www.cppblog.com/tiandejian/archive/2007/04/22/ECPP_08.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cppblog.com/tiandejian/comments/commentRss/22584.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tiandejian/services/trackbacks/22584.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 永远不要让析构函数引发异常。如果析构函数所调用的函数会抛出异常的话，那么在析构函数中要捕捉到所有异常，然后忽略它们或者终止程序。<br>在一次操作中，如果一个类的使用者有能力对抛出异常作出反应，那么这个类应该提供一个常规的函数（而不是析构函数）来进行这一操作。<br>&nbsp;&nbsp;<a href='http://www.cppblog.com/tiandejian/archive/2007/04/22/ECPP_08.html'>阅读全文</a><img src ="http://www.cppblog.com/tiandejian/aggbug/22584.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tiandejian/" target="_blank">★ROY★</a> 2007-04-22 14:00 <a href="http://www.cppblog.com/tiandejian/archive/2007/04/22/ECPP_08.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【翻译】Effective C++ (第7条：要将多态基类的析构函数声明为虚函数)</title><link>http://www.cppblog.com/tiandejian/archive/2007/04/20/ECPP_07.html</link><dc:creator>★ROY★</dc:creator><author>★ROY★</author><pubDate>Fri, 20 Apr 2007 13:59:00 GMT</pubDate><guid>http://www.cppblog.com/tiandejian/archive/2007/04/20/ECPP_07.html</guid><wfw:comment>http://www.cppblog.com/tiandejian/comments/22428.html</wfw:comment><comments>http://www.cppblog.com/tiandejian/archive/2007/04/20/ECPP_07.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/tiandejian/comments/commentRss/22428.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tiandejian/services/trackbacks/22428.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 应该为多态基类声明虚析构函数。一旦一个类包含虚函数，它就应该包含一个虚析构函数。<br>如果一个类不用作基类或者不需具有多态性，便不应该为它声明虚析构函数。<br>&nbsp;&nbsp;<a href='http://www.cppblog.com/tiandejian/archive/2007/04/20/ECPP_07.html'>阅读全文</a><img src ="http://www.cppblog.com/tiandejian/aggbug/22428.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tiandejian/" target="_blank">★ROY★</a> 2007-04-20 21:59 <a href="http://www.cppblog.com/tiandejian/archive/2007/04/20/ECPP_07.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【翻译】Effective C++ (第6条：要显式禁止编译器为你生成不必要的函数)</title><link>http://www.cppblog.com/tiandejian/archive/2007/04/18/ECPP_06.html</link><dc:creator>★ROY★</dc:creator><author>★ROY★</author><pubDate>Wed, 18 Apr 2007 15:21:00 GMT</pubDate><guid>http://www.cppblog.com/tiandejian/archive/2007/04/18/ECPP_06.html</guid><wfw:comment>http://www.cppblog.com/tiandejian/comments/22260.html</wfw:comment><comments>http://www.cppblog.com/tiandejian/archive/2007/04/18/ECPP_06.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/tiandejian/comments/commentRss/22260.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tiandejian/services/trackbacks/22260.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 为了禁用编译器自动提供的功能，须将相关的成员函数声明为private的，同时不要实现它。使用一个像Uncopyable这样的类来完成这一工作。<br>&nbsp;&nbsp;<a href='http://www.cppblog.com/tiandejian/archive/2007/04/18/ECPP_06.html'>阅读全文</a><img src ="http://www.cppblog.com/tiandejian/aggbug/22260.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tiandejian/" target="_blank">★ROY★</a> 2007-04-18 23:21 <a href="http://www.cppblog.com/tiandejian/archive/2007/04/18/ECPP_06.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【翻译】Effective C++ (第5条：要清楚C++在后台为你书写和调用了什么函数)</title><link>http://www.cppblog.com/tiandejian/archive/2007/04/17/ECPP_05.html</link><dc:creator>★ROY★</dc:creator><author>★ROY★</author><pubDate>Tue, 17 Apr 2007 11:34:00 GMT</pubDate><guid>http://www.cppblog.com/tiandejian/archive/2007/04/17/ECPP_05.html</guid><wfw:comment>http://www.cppblog.com/tiandejian/comments/22155.html</wfw:comment><comments>http://www.cppblog.com/tiandejian/archive/2007/04/17/ECPP_05.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/tiandejian/comments/commentRss/22155.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tiandejian/services/trackbacks/22155.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 你编写的每个类几乎都有一个或多个构造器、一个析构器、和一个赋值运算符。这没有什么好稀奇的。这些是编写一个类所必需的一些函数，这些函数控制着类的基本操作，其中包括使一个对象由概念变为现实并且确保这一对象得到初始化，以及从系统中排除一个对象并对其进行恰当的清理工作，还有为一个对象赋予一个新的值。在这些函数中出错将为你的类带来深远而重大的负面影响，这自然是令人扫兴的，所以写好这些函数是十分重要的。这些函数构成了类的中枢神经。这一章中将为你介绍怎样编写这些程序才会使你的类更加优秀。<br>&nbsp;&nbsp;<a href='http://www.cppblog.com/tiandejian/archive/2007/04/17/ECPP_05.html'>阅读全文</a><img src ="http://www.cppblog.com/tiandejian/aggbug/22155.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tiandejian/" target="_blank">★ROY★</a> 2007-04-17 19:34 <a href="http://www.cppblog.com/tiandejian/archive/2007/04/17/ECPP_05.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【翻译】Effective C++ (第4项：确保对象在使用前得到初始化) </title><link>http://www.cppblog.com/tiandejian/archive/2007/04/15/ECPP_04.html</link><dc:creator>★ROY★</dc:creator><author>★ROY★</author><pubDate>Sun, 15 Apr 2007 12:23:00 GMT</pubDate><guid>http://www.cppblog.com/tiandejian/archive/2007/04/15/ECPP_04.html</guid><wfw:comment>http://www.cppblog.com/tiandejian/comments/21964.html</wfw:comment><comments>http://www.cppblog.com/tiandejian/archive/2007/04/15/ECPP_04.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cppblog.com/tiandejian/comments/commentRss/21964.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tiandejian/services/trackbacks/21964.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 为了避免在对象初始化之前使用它，你仅仅需要做三件事。第一，手动初始化基本类型的非成员对象。第二，使用成员初始化表来初始化对象的每一部分。最后，初始化次序的不确定性会使定义于不同置换单元中的非局部静态对象之间产生冲突，要避免这样的设计。<br>&nbsp;&nbsp;<a href='http://www.cppblog.com/tiandejian/archive/2007/04/15/ECPP_04.html'>阅读全文</a><img src ="http://www.cppblog.com/tiandejian/aggbug/21964.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tiandejian/" target="_blank">★ROY★</a> 2007-04-15 20:23 <a href="http://www.cppblog.com/tiandejian/archive/2007/04/15/ECPP_04.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>