﻿<?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++博客-小阮的菜田-随笔分类-C++程序设计语言</title><link>http://www.cppblog.com/jericho/category/15343.html</link><description>一个人一种命，各安天命吧。</description><language>zh-cn</language><lastBuildDate>Sun, 13 Mar 2011 11:01:38 GMT</lastBuildDate><pubDate>Sun, 13 Mar 2011 11:01:38 GMT</pubDate><ttl>60</ttl><item><title>名字空间和异常</title><link>http://www.cppblog.com/jericho/archive/2011/03/12/141682.html</link><dc:creator>小阮</dc:creator><author>小阮</author><pubDate>Sat, 12 Mar 2011 15:47:00 GMT</pubDate><guid>http://www.cppblog.com/jericho/archive/2011/03/12/141682.html</guid><wfw:comment>http://www.cppblog.com/jericho/comments/141682.html</wfw:comment><comments>http://www.cppblog.com/jericho/archive/2011/03/12/141682.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jericho/comments/commentRss/141682.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jericho/services/trackbacks/141682.html</trackback:ping><description><![CDATA[【1】用名字空间表示逻辑结构<br>【2】将每个非局部的名字放入某个名字空间里，除了main之外；<br>【3】名字空间的设计应该让你能很方便地使用它，而又不会意外地访问了其他的无关名字空间；<br>【4】避免对名字空间使用很短的名字；<br>【5】如果需要，通过名字空间别名取缓和长名字空间的影相；<br>【6】避免和你的名字空间的用户添加太大的记法负担；<br>【7】在定义名字空间成员时使用namespace::member的形式；<br>【8】只在转换时，或者在局部作用域里，才用using namespace ；<br>【9】利用异常去松弛&#8220;错误&#8221;处理代码和正常代码之间的联系；<br>【10】采用用户定义类型作为异常，不用内部类型；<br>【11】当局部控制结构足以应付问题时，不要用异常。
<img src ="http://www.cppblog.com/jericho/aggbug/141682.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jericho/" target="_blank">小阮</a> 2011-03-12 23:47 <a href="http://www.cppblog.com/jericho/archive/2011/03/12/141682.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>可变参数.</title><link>http://www.cppblog.com/jericho/archive/2011/03/12/141669.html</link><dc:creator>小阮</dc:creator><author>小阮</author><pubDate>Sat, 12 Mar 2011 14:25:00 GMT</pubDate><guid>http://www.cppblog.com/jericho/archive/2011/03/12/141669.html</guid><wfw:comment>http://www.cppblog.com/jericho/comments/141669.html</wfw:comment><comments>http://www.cppblog.com/jericho/archive/2011/03/12/141669.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jericho/comments/commentRss/141669.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jericho/services/trackbacks/141669.html</trackback:ping><description><![CDATA[练习 7.11<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;写一个error函数，它取一个printf风格的包含%s、%c和%d指示符的格式串， 以及任意多个其他参数。请不要使用printf()。<br><br>解：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;对于变动长度参数表的处理通过一些很像对待器的设施完成，这类设施的类型为va_list。宏va_start对这类设施进行初始化，还必须用宏va_end指明这种设施不会再用。要取得当前参数的值并将该设施移到下一个参数， 需要用va_arg。参数表的结束必须能从至今已经看到的实际参数确定（典型情况下，函数从没有省略号表示的某个常规参数哪里获得有关信息。）<br><br>
<div style="BORDER-BOTTOM: #cccccc 1px solid; BORDER-LEFT: #cccccc 1px solid; PADDING-BOTTOM: 4px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 4px; WIDTH: 98%; PADDING-RIGHT: 5px; FONT-SIZE: 13px; WORD-BREAK: break-all; BORDER-TOP: #cccccc 1px solid; BORDER-RIGHT: #cccccc 1px solid; PADDING-TOP: 4px"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"><span style="COLOR: #000000">#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">cassert</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif">#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">cstdarg</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif">#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">iostream</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif">#include&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">stdexcept</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"><br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"></span><span style="COLOR: #0000ff">using</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">namespace</span><span style="COLOR: #000000">&nbsp;std;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"><br><img id=Codehighlighter1_135_769_Open_Image onclick="this.style.display='none'; Codehighlighter1_135_769_Open_Text.style.display='none'; Codehighlighter1_135_769_Closed_Image.style.display='inline'; Codehighlighter1_135_769_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_135_769_Closed_Image onclick="this.style.display='none'; Codehighlighter1_135_769_Closed_Text.style.display='none'; Codehighlighter1_135_769_Open_Image.style.display='inline'; Codehighlighter1_135_769_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif"></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;error(</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;fmt,&nbsp;<img src="http://www.cppblog.com/Images/dot.gif">)</span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_135_769_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_135_769_Open_Text><span style="COLOR: #000000">{<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;assert(fmt);<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;va_list&nbsp;p;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;va_start(p,&nbsp;fmt);<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">s</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">fmt;&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">s;&nbsp;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">s)<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">s</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">)<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cerr.put(</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">s);<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000"><br><img id=Codehighlighter1_368_748_Open_Image onclick="this.style.display='none'; Codehighlighter1_368_748_Open_Text.style.display='none'; Codehighlighter1_368_748_Closed_Image.style.display='inline'; Codehighlighter1_368_748_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_368_748_Closed_Image onclick="this.style.display='none'; Codehighlighter1_368_748_Closed_Text.style.display='none'; Codehighlighter1_368_748_Open_Image.style.display='inline'; Codehighlighter1_368_748_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">switch</span><span style="COLOR: #000000">(</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">(</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">s))</span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_368_748_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_368_748_Open_Text><span style="COLOR: #000000">{<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">case</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">:&nbsp;cerr.put(</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">);&nbsp;</span><span style="COLOR: #0000ff">break</span><span style="COLOR: #000000">;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">case</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">s</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">:&nbsp;cerr</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">va_arg(p,&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">);&nbsp;</span><span style="COLOR: #0000ff">break</span><span style="COLOR: #000000">;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">case</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">c</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">:&nbsp;cerr</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">(</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">)va_arg(p,&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">);&nbsp;</span><span style="COLOR: #0000ff">break</span><span style="COLOR: #000000">;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">case</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">d</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">:&nbsp;cerr</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">va_arg(p,&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">);&nbsp;</span><span style="COLOR: #0000ff">break</span><span style="COLOR: #000000">;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">default</span><span style="COLOR: #000000">:<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">throw</span><span style="COLOR: #000000">&nbsp;domain_error(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">error</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;va_end(p);<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif">}</span></span><span style="COLOR: #000000"><br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"><br><img id=Codehighlighter1_782_911_Open_Image onclick="this.style.display='none'; Codehighlighter1_782_911_Open_Text.style.display='none'; Codehighlighter1_782_911_Closed_Image.style.display='inline'; Codehighlighter1_782_911_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_782_911_Closed_Image onclick="this.style.display='none'; Codehighlighter1_782_911_Closed_Text.style.display='none'; Codehighlighter1_782_911_Open_Image.style.display='inline'; Codehighlighter1_782_911_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif"></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main()</span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_782_911_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_782_911_Open_Text><span style="COLOR: #000000">{<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;error(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">A&nbsp;string&nbsp;\</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">s\</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;a&nbsp;single&nbsp;character&nbsp;\'%c\',&nbsp;an&nbsp;integer&nbsp;%d\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Hello&nbsp;World</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">$</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">12345</span><span style="COLOR: #000000">);<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif">}</span></span><span style="COLOR: #000000"><br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></div>
<img src ="http://www.cppblog.com/jericho/aggbug/141669.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jericho/" target="_blank">小阮</a> 2011-03-12 22:25 <a href="http://www.cppblog.com/jericho/archive/2011/03/12/141669.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>函数</title><link>http://www.cppblog.com/jericho/archive/2011/03/06/141218.html</link><dc:creator>小阮</dc:creator><author>小阮</author><pubDate>Sun, 06 Mar 2011 08:53:00 GMT</pubDate><guid>http://www.cppblog.com/jericho/archive/2011/03/06/141218.html</guid><wfw:comment>http://www.cppblog.com/jericho/comments/141218.html</wfw:comment><comments>http://www.cppblog.com/jericho/archive/2011/03/06/141218.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jericho/comments/commentRss/141218.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jericho/services/trackbacks/141218.html</trackback:ping><description><![CDATA[<p>【1】质疑那些非const的引用参数；如果你想要的一个函数去修改其参数，请使用指针或者返回值；<br>【2】当你需要尽可能减少参数复制时，应用使用const引用参数；<br>【3】广泛而一致地使用const；<br>【4】避免宏<br>【5】避免不确定数目的参数；<br>【6】不要返回局部变量的指针或者引用；<br>【7】当一些函数对不同的类型执行概念上相同的工作时，请使用重载；<br>【8】在各种整数上重载时，通过提供函数去消除常见的歧义性；<br>【9】在考虑使用指向函数的指针时，请考虑虚函数或模板是不是更好的选择；<br>【10】如果你必须使用宏，请使用带有许多大写字幕的丑陋的名字。</p>
<img src ="http://www.cppblog.com/jericho/aggbug/141218.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jericho/" target="_blank">小阮</a> 2011-03-06 16:53 <a href="http://www.cppblog.com/jericho/archive/2011/03/06/141218.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>表达式与语句</title><link>http://www.cppblog.com/jericho/archive/2010/11/09/133042.html</link><dc:creator>小阮</dc:creator><author>小阮</author><pubDate>Mon, 08 Nov 2010 16:35:00 GMT</pubDate><guid>http://www.cppblog.com/jericho/archive/2010/11/09/133042.html</guid><wfw:comment>http://www.cppblog.com/jericho/comments/133042.html</wfw:comment><comments>http://www.cppblog.com/jericho/archive/2010/11/09/133042.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jericho/comments/commentRss/133042.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jericho/services/trackbacks/133042.html</trackback:ping><description><![CDATA[1.&nbsp;&nbsp; 应尽可能使用标准库，而不是其他的库和&#8220;手工打造的代码&#8221;；<br>2.&nbsp;&nbsp; 避免过于复杂的表达式；<br>3.&nbsp;&nbsp; 如果对运算符的优先级有疑问， 加括号；<br>4.&nbsp;&nbsp; 避免显示类型转换（强制）；<br>5.&nbsp;&nbsp; 若必须做显示类型转换，提倡使用特殊强制运算符，而不是C风格的强制；<br>6.&nbsp;&nbsp; 只对定义良好的构造使用T(e)记法；<br>7.&nbsp;&nbsp; 避免goto；<br>8.&nbsp;&nbsp; 避免do语句；<br>9.&nbsp;&nbsp; 在你已经有了去初始化某个变量的值之前，不要去声明他；<br>10. 避免带有无定义求值顺序的表达式；<br>11. 使注释简洁、清晰、有意义；<br>12. 保持一致的缩进风格；<br>13. 倾向于定义一个成果函数operator new() 取代全局的operator new()；<br>14. 在读输入的时候，总应考虑病态形势的输入。
<img src ="http://www.cppblog.com/jericho/aggbug/133042.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jericho/" target="_blank">小阮</a> 2010-11-09 00:35 <a href="http://www.cppblog.com/jericho/archive/2010/11/09/133042.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>指针、数组和结构</title><link>http://www.cppblog.com/jericho/archive/2010/11/04/132485.html</link><dc:creator>小阮</dc:creator><author>小阮</author><pubDate>Thu, 04 Nov 2010 13:22:00 GMT</pubDate><guid>http://www.cppblog.com/jericho/archive/2010/11/04/132485.html</guid><wfw:comment>http://www.cppblog.com/jericho/comments/132485.html</wfw:comment><comments>http://www.cppblog.com/jericho/archive/2010/11/04/132485.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jericho/comments/commentRss/132485.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jericho/services/trackbacks/132485.html</trackback:ping><description><![CDATA[1. 避免非平凡的指针运算；<br>2. 当心，不要超过数组的界限去写；<br>3. 尽量使用0而不是NULL；<br>4. 尽量使用vector和valarray而不是内部（C风格）的数组；<br>5. 尽量使用string 而不是以0结尾的char数组；<br>6. 尽量少用普通的引用参数；<br>7. 避免void* ，除了在某些低级代码里；<br>8. 避免在代码中使用非平凡的文字量。相反，应该定义和使用各种符号常量。
<img src ="http://www.cppblog.com/jericho/aggbug/132485.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jericho/" target="_blank">小阮</a> 2010-11-04 21:22 <a href="http://www.cppblog.com/jericho/archive/2010/11/04/132485.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>类型和申明</title><link>http://www.cppblog.com/jericho/archive/2010/11/02/132200.html</link><dc:creator>小阮</dc:creator><author>小阮</author><pubDate>Tue, 02 Nov 2010 14:02:00 GMT</pubDate><guid>http://www.cppblog.com/jericho/archive/2010/11/02/132200.html</guid><wfw:comment>http://www.cppblog.com/jericho/comments/132200.html</wfw:comment><comments>http://www.cppblog.com/jericho/archive/2010/11/02/132200.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/jericho/comments/commentRss/132200.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/jericho/services/trackbacks/132200.html</trackback:ping><description><![CDATA[1.&nbsp;&nbsp;&nbsp;&nbsp;保持较小的作用域。<br>2.&nbsp;&nbsp;&nbsp;&nbsp;不要在一个作用域和它外围的作用域里采用同样的名字。、<br>3.&nbsp;&nbsp;&nbsp;&nbsp;在一个声明中（只）声明一个名字。<br>4.&nbsp;&nbsp;&nbsp;&nbsp;让常用的和局部的名字比较短， 让不常用的和全局名字比较长。<br>5.&nbsp;&nbsp;&nbsp;&nbsp;避免看起来类似的名字。<br>6.&nbsp;&nbsp;&nbsp;&nbsp;维持某种统一的命名风格。<br>7.&nbsp;&nbsp;&nbsp;&nbsp;仔细选择名字， 反映其意义而不是反映实现方式。<br>8.&nbsp;&nbsp;&nbsp;&nbsp;如果所用的内部类型表示某种可能变化的值， 请用typedef 为它定一个有意义的名字。<br>9.&nbsp;&nbsp;&nbsp;&nbsp;用typedef 为类型定义同义词， 用枚举或类去定义新类型。<br>10.&nbsp;&nbsp;切记每个声明中都必须描述一个类型（没有&#8220;隐事的int &#8221;）。<br>11.&nbsp; 避免有关字符数值的不必要假设。<br>12.&nbsp; 避免有关整数大小的不必要假设。<br>13.&nbsp; 避免有关浮点类型表示范围的不必要假设。<br>14.&nbsp; 优先使用普通的int 而不是short int 或者long int。<br>15.&nbsp; 优先使用double 而不是float 或者long double。<br>16.&nbsp; 优先使用普通的char 而不是signed char 或者 unsigned char。<br>17.&nbsp; 避免做出有关对象大小的不必要假设。<br>18.&nbsp; 避免无符号算术。<br>19.&nbsp; 应该带着疑问去看待从signed 到unsigned，或者从unsigned到signed的转换。<br>20.&nbsp; 应该带着疑问去看待从浮点到整数的转换。<br>21.&nbsp; 应该带着疑问去看待向较小类型的转换，如将int 转换到char。
<img src ="http://www.cppblog.com/jericho/aggbug/132200.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/jericho/" target="_blank">小阮</a> 2010-11-02 22:02 <a href="http://www.cppblog.com/jericho/archive/2010/11/02/132200.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>