﻿<?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++博客-yutou's blog-随笔分类-Programming</title><link>http://www.cppblog.com/luyu16404/category/6226.html</link><description>请不要做浮躁的人，请热爱C++。</description><language>zh-cn</language><lastBuildDate>Wed, 21 May 2008 01:34:52 GMT</lastBuildDate><pubDate>Wed, 21 May 2008 01:34:52 GMT</pubDate><ttl>60</ttl><item><title>SQL参考手册(基于ms sql 2000 help system)</title><link>http://www.cppblog.com/luyu16404/archive/2008/04/10/46783.html</link><dc:creator>yutou</dc:creator><author>yutou</author><pubDate>Thu, 10 Apr 2008 14:55:00 GMT</pubDate><guid>http://www.cppblog.com/luyu16404/archive/2008/04/10/46783.html</guid><wfw:comment>http://www.cppblog.com/luyu16404/comments/46783.html</wfw:comment><comments>http://www.cppblog.com/luyu16404/archive/2008/04/10/46783.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/luyu16404/comments/commentRss/46783.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/luyu16404/services/trackbacks/46783.html</trackback:ping><description><![CDATA[很好的一个小册子,不大不小,却是一个学习的好帮手.放此收藏.<br><br>感谢<strong><font size=2>LXH2002的收集整理.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;-)</font></strong>
<img src ="http://www.cppblog.com/luyu16404/aggbug/46783.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/luyu16404/" target="_blank">yutou</a> 2008-04-10 22:55 <a href="http://www.cppblog.com/luyu16404/archive/2008/04/10/46783.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于new与delete</title><link>http://www.cppblog.com/luyu16404/archive/2008/04/07/46437.html</link><dc:creator>yutou</dc:creator><author>yutou</author><pubDate>Mon, 07 Apr 2008 09:24:00 GMT</pubDate><guid>http://www.cppblog.com/luyu16404/archive/2008/04/07/46437.html</guid><wfw:comment>http://www.cppblog.com/luyu16404/comments/46437.html</wfw:comment><comments>http://www.cppblog.com/luyu16404/archive/2008/04/07/46437.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/luyu16404/comments/commentRss/46437.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/luyu16404/services/trackbacks/46437.html</trackback:ping><description><![CDATA[<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">p&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">i&nbsp;,</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">pk;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>pk&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;p;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>delete&nbsp;pk;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">错误<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">不能delete一个不是new分配的空间<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span></div>
<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">p&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">i;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">pk&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;p;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>delete&nbsp;p;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">正确<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">p与pk指向同一个内存区域，而这个内存区域是由new产生</span></div>
<img src ="http://www.cppblog.com/luyu16404/aggbug/46437.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/luyu16404/" target="_blank">yutou</a> 2008-04-07 17:24 <a href="http://www.cppblog.com/luyu16404/archive/2008/04/07/46437.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用if遇到的一点问题</title><link>http://www.cppblog.com/luyu16404/archive/2008/04/07/46436.html</link><dc:creator>yutou</dc:creator><author>yutou</author><pubDate>Mon, 07 Apr 2008 09:06:00 GMT</pubDate><guid>http://www.cppblog.com/luyu16404/archive/2008/04/07/46436.html</guid><wfw:comment>http://www.cppblog.com/luyu16404/comments/46436.html</wfw:comment><comments>http://www.cppblog.com/luyu16404/archive/2008/04/07/46436.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/luyu16404/comments/commentRss/46436.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/luyu16404/services/trackbacks/46436.html</trackback:ping><description><![CDATA[在if else if 使用中出现的一点问题，编译器报出&#8220;在return的前面缺少 ';' &#8221;<br><br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;compare(&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;shu_size&nbsp;,</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;vector&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">_vec&nbsp;)<br><img id=Codehighlighter1_54_238_Open_Image onclick="this.style.display='none'; Codehighlighter1_54_238_Open_Text.style.display='none'; Codehighlighter1_54_238_Closed_Image.style.display='inline'; Codehighlighter1_54_238_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_54_238_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_54_238_Closed_Text.style.display='none'; Codehighlighter1_54_238_Open_Image.style.display='inline'; Codehighlighter1_54_238_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_54_238_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_54_238_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;vec_size&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">(_vec.size());<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(&nbsp;shu_size&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;vec_size&nbsp;)&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;shu_size;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(&nbsp;shu_size&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;vec_size&nbsp;)&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;shu_size;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000">&nbsp;(&nbsp;shu_size&nbsp;</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">&nbsp;vec_size&nbsp;)&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;vec_size;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span></div>
<br><br>//更改后通过编译的代码<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;compare(&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;shu_size&nbsp;,</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;vector&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">_vec&nbsp;)<br><img id=Codehighlighter1_54_157_Open_Image onclick="this.style.display='none'; Codehighlighter1_54_157_Open_Text.style.display='none'; Codehighlighter1_54_157_Closed_Image.style.display='inline'; Codehighlighter1_54_157_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_54_157_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_54_157_Closed_Text.style.display='none'; Codehighlighter1_54_157_Open_Image.style.display='inline'; Codehighlighter1_54_157_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_54_157_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_54_157_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;vec_size&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">(_vec.size());<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(&nbsp;shu_size&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;vec_size&nbsp;)&nbsp;vec_size&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;shu_size;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;vec_size;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span></div>
<br>
<img src ="http://www.cppblog.com/luyu16404/aggbug/46436.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/luyu16404/" target="_blank">yutou</a> 2008-04-07 17:06 <a href="http://www.cppblog.com/luyu16404/archive/2008/04/07/46436.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>vector类型的常对象与iterator常对象的对应使用</title><link>http://www.cppblog.com/luyu16404/archive/2008/04/07/46435.html</link><dc:creator>yutou</dc:creator><author>yutou</author><pubDate>Mon, 07 Apr 2008 08:58:00 GMT</pubDate><guid>http://www.cppblog.com/luyu16404/archive/2008/04/07/46435.html</guid><wfw:comment>http://www.cppblog.com/luyu16404/comments/46435.html</wfw:comment><comments>http://www.cppblog.com/luyu16404/archive/2008/04/07/46435.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/luyu16404/comments/commentRss/46435.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/luyu16404/services/trackbacks/46435.html</trackback:ping><description><![CDATA[<p>code:<br><br></p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #008000">//</span><span style="COLOR: #008000">出现error&nbsp;C2440</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">bool</span><span style="COLOR: #000000">&nbsp;is_equal(&nbsp;</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;vector&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">ivec&nbsp;)&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">vector对象的常引用</span><span style="COLOR: #008000"><br><img id=Codehighlighter1_74_205_Open_Image onclick="this.style.display='none'; Codehighlighter1_74_205_Open_Text.style.display='none'; Codehighlighter1_74_205_Closed_Image.style.display='inline'; Codehighlighter1_74_205_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_74_205_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_74_205_Closed_Text.style.display='none'; Codehighlighter1_74_205_Open_Image.style.display='inline'; Codehighlighter1_74_205_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_74_205_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_74_205_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(&nbsp;vector&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">::iterator&nbsp;it&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;ivec.begin()&nbsp;;it&nbsp;</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">&nbsp;ivec.end()&nbsp;;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">it&nbsp;)&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">这里使用的是iterator</span><span style="COLOR: #008000"><br><img id=Codehighlighter1_178_203_Open_Image onclick="this.style.display='none'; Codehighlighter1_178_203_Open_Text.style.display='none'; Codehighlighter1_178_203_Closed_Image.style.display='inline'; Codehighlighter1_178_203_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_178_203_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_178_203_Closed_Text.style.display='none'; Codehighlighter1_178_203_Open_Image.style.display='inline'; Codehighlighter1_178_203_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_178_203_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_178_203_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#8230;&#8230;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span></div>
<p><br><br>&nbsp;</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #008000">//</span><span style="COLOR: #008000">正确的使用方法</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">bool</span><span style="COLOR: #000000">&nbsp;is_equal(&nbsp;</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;vector&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">ivec&nbsp;)&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">vector对象的常引用</span><span style="COLOR: #008000"><br><img id=Codehighlighter1_68_211_Open_Image onclick="this.style.display='none'; Codehighlighter1_68_211_Open_Text.style.display='none'; Codehighlighter1_68_211_Closed_Image.style.display='inline'; Codehighlighter1_68_211_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_68_211_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_68_211_Closed_Text.style.display='none'; Codehighlighter1_68_211_Open_Image.style.display='inline'; Codehighlighter1_68_211_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_68_211_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_68_211_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">(&nbsp;vector&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">::const_iterator&nbsp;it&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;ivec.begin()&nbsp;;it&nbsp;</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">&nbsp;ivec.end()&nbsp;;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">it&nbsp;)&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">这里使用的是const_iterator</span><span style="COLOR: #008000"><br><img id=Codehighlighter1_184_209_Open_Image onclick="this.style.display='none'; Codehighlighter1_184_209_Open_Text.style.display='none'; Codehighlighter1_184_209_Closed_Image.style.display='inline'; Codehighlighter1_184_209_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_184_209_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_184_209_Closed_Text.style.display='none'; Codehighlighter1_184_209_Open_Image.style.display='inline'; Codehighlighter1_184_209_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_184_209_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_184_209_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#8230;&#8230;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span></div>
<p><br><br>ps:标准库相当复杂！</p>
<img src ="http://www.cppblog.com/luyu16404/aggbug/46435.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/luyu16404/" target="_blank">yutou</a> 2008-04-07 16:58 <a href="http://www.cppblog.com/luyu16404/archive/2008/04/07/46435.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]讲讲volatile的作用</title><link>http://www.cppblog.com/luyu16404/archive/2008/04/06/46380.html</link><dc:creator>yutou</dc:creator><author>yutou</author><pubDate>Sun, 06 Apr 2008 09:29:00 GMT</pubDate><guid>http://www.cppblog.com/luyu16404/archive/2008/04/06/46380.html</guid><wfw:comment>http://www.cppblog.com/luyu16404/comments/46380.html</wfw:comment><comments>http://www.cppblog.com/luyu16404/archive/2008/04/06/46380.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/luyu16404/comments/commentRss/46380.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/luyu16404/services/trackbacks/46380.html</trackback:ping><description><![CDATA[<p>信息来源:http://blog.21ic.com/user1/2949/archives/2007/35599.html<br><br></p>
<div>一个定义为volatile的变量是说这变量可能会被意想不到地改变，这样，编译器就不会去假设这个变量的值了。精确地说就是，优化器在用到这个变量时必须每次都小心地重新读取这个变量的值，而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子： <br>&nbsp;&nbsp;&nbsp;&nbsp;1).&nbsp;并行设备的硬件寄存器（如：状态寄存器） <br>&nbsp;&nbsp;&nbsp;&nbsp;2).&nbsp;一个中断服务子程序中会访问到的非自动变量(Non-automatic&nbsp;variables) <br>&nbsp;&nbsp;&nbsp;&nbsp;3).&nbsp;多线程应用中被几个任务共享的变量 <br>&nbsp;&nbsp;&nbsp;&nbsp;回答不出这个问题的人是不会被雇佣的。我认为这是区分C程序员和嵌入式系统程序员的最基本的问题。嵌入式系统程序员经常同硬件、中断、RTOS等等打交道，所用这些都要求volatile变量。不懂得volatile内容将会带来灾难。 <br>&nbsp;&nbsp;&nbsp;&nbsp;假设被面试者正确地回答了这是问题（嗯，怀疑这否会是这样），我将稍微深究一下，看一下这家伙是不是直正懂得volatile完全的重要性。 <br>&nbsp;&nbsp;&nbsp;&nbsp;1).&nbsp;一个参数既可以是const还可以是volatile吗？解释为什么。 <br>&nbsp;&nbsp;&nbsp;&nbsp;2).&nbsp;一个指针可以是volatile&nbsp;吗？解释为什么。 <br>&nbsp;&nbsp;&nbsp;&nbsp;3).&nbsp;下面的函数有什么错误： <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;square(volatile&nbsp;int&nbsp;*ptr) <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;*ptr&nbsp;*&nbsp;*ptr; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} <br>&nbsp;&nbsp;&nbsp;&nbsp;下面是答案： <br>&nbsp;&nbsp;&nbsp;&nbsp;1).&nbsp;是的。一个例子是只读的状态寄存器。它是volatile因为它可能被意想不到地改变。它是const因为程序不应该试图去修改它。 <br>&nbsp;&nbsp;&nbsp;&nbsp;2).&nbsp;是的。尽管这并不很常见。一个例子是当一个中服务子程序修该一个指向一个buffer的指针时。 <br>&nbsp;&nbsp;&nbsp;&nbsp;3).&nbsp;这段代码的有个恶作剧。这段代码的目的是用来返指针*ptr指向值的平方，但是，由于*ptr指向一个volatile型参数，编译器将产生类似下面的代码： <br>&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;square(volatile&nbsp;int&nbsp;*ptr)&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;{ <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;a,b; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a&nbsp;=&nbsp;*ptr; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;b&nbsp;=&nbsp;*ptr; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;a&nbsp;*&nbsp;b; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} <br>&nbsp;&nbsp;&nbsp;&nbsp;由于*ptr的值可能被意想不到地该变，因此a和b可能是不同的。结果，这段代码可能返不是你所期望的平方值！正确的代码如下： <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;long&nbsp;square(volatile&nbsp;int&nbsp;*ptr)&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;a; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a&nbsp;=&nbsp;*ptr; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;a&nbsp;*&nbsp;a; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} <br></div>
<img src ="http://www.cppblog.com/luyu16404/aggbug/46380.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/luyu16404/" target="_blank">yutou</a> 2008-04-06 17:29 <a href="http://www.cppblog.com/luyu16404/archive/2008/04/06/46380.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C++中的类型重定义</title><link>http://www.cppblog.com/luyu16404/archive/2008/03/10/44096.html</link><dc:creator>yutou</dc:creator><author>yutou</author><pubDate>Mon, 10 Mar 2008 08:32:00 GMT</pubDate><guid>http://www.cppblog.com/luyu16404/archive/2008/03/10/44096.html</guid><wfw:comment>http://www.cppblog.com/luyu16404/comments/44096.html</wfw:comment><comments>http://www.cppblog.com/luyu16404/archive/2008/03/10/44096.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/luyu16404/comments/commentRss/44096.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/luyu16404/services/trackbacks/44096.html</trackback:ping><description><![CDATA[<span lang=zh-CN style="FONT-FAMILY: simsun"><span style="FONT-STYLE: italic; FONT-FAMILY: Arial; TEXT-DECORATION: underline">By SmartPtr(</span><a title=http://www.cppblog.com/SmartPtr/ style="FONT-STYLE: italic; FONT-FAMILY: arial; TEXT-DECORATION: underline" href="http://www.cppblog.com/SmartPtr/"><font color=#4371a6>http://www.cppblog.com/SmartPtr/)</font></a></span><span lang=zh-CN style="FONT-FAMILY: simsun"><span style="FONT-STYLE: italic; FONT-FAMILY: Arial; TEXT-DECORATION: underline"></span><a title=http://www.cppblog.com/SmartPtr/ style="FONT-STYLE: italic; FONT-FAMILY: arial; TEXT-DECORATION: underline" href="http://www.cppblog.com/SmartPtr/"></a><br><br></span>这几天工作时碰到一个<span lang=EN-US style="FONT-FAMILY: 'courier new'">C++</span><span>的编译错误</span><span lang=EN-US style="FONT-FAMILY: 'courier new'">(</span><span>我使用的是</span><span lang=EN-US style="FONT-FAMILY: 'courier new'">Visual C++ 7.0)</span><span>，说是有一个类重复定义，仔细想想我们的这个项目也是做了好几个</span><span lang=EN-US style="FONT-FAMILY: 'courier new'">Release</span><span>了，</span><span style="FONT-FAMILY: 'Courier New'"> </span><span>内部代码应该不会有这样的低级错误，</span><span style="FONT-FAMILY: 'Courier New'"> </span><span>真把类型给重复定义了，检查结果正如我预料的一样。</span><span style="FONT-FAMILY: 'Courier New'"> </span><span>就这样，</span><span style="FONT-FAMILY: 'Courier New'"> </span><span>我左右没找到原因，被一个编译错误给卡在那里了。（在我的概念中，</span><span style="FONT-FAMILY: 'Courier New'"> </span><span>程序错误的等级为：编译错误－</span><span lang=EN-US style="FONT-FAMILY: 'courier new'">&gt;</span><span>链接错误－</span><span lang=EN-US style="FONT-FAMILY: 'courier new'">&gt;</span><span>逻辑错误，</span><span style="FONT-FAMILY: 'Courier New'"> </span><span>此错误属于最低级</span><span style="FONT-FAMILY: 'Courier New'"> </span><span>）。这时我仔细看了一下错误提示，</span><span style="FONT-FAMILY: 'Courier New'"> </span><span>发现重复定义是由于从两个不同的路径包含了同一个头文件而引起的，同事也建议从另外一个路径打开工程试试，</span><span style="FONT-FAMILY: 'Courier New'"> </span><span>这才慢慢发现了原因。这个原因可能有些拗口，而事实上要出现这种错误也有些</span><span>&#8220;</span><span>曲折</span><span>&#8220;</span><span>，</span><span style="FONT-FAMILY: 'Courier New'"> </span><span>让我从不同情况下的类型重定义来解释一下吧。</span><span lang=EN-US style="FONT-FAMILY: 'courier new'"><o:p></o:p></span>
<p class=MsoPlainText><span></span></p>
<p class=MsoPlainText><span>我总结的C++中类型重定义情况有三。</span><span lang=EN-US style="FONT-FAMILY: 'courier new'"><o:p></o:p></span></p>
<p class=MsoPlainText><strong><span lang=EN-US style="FONT-FAMILY: 'courier new'">1 </span></strong><strong><span>没有在文件头加</span></strong><strong><span lang=EN-US style="FONT-FAMILY: 'courier new'">#pragma once</span></strong><strong><span>指示符。<br><br></span></strong><strong><span lang=EN-US style="FONT-FAMILY: 'courier new'">Type1.h:</span></strong><strong><span lang=EN-US style="FONT-FAMILY: 'courier new'"></span></strong><span lang=EN-US style="FONT-FAMILY: 'courier new'">&nbsp; #pragma once</span><span>的作用是保证本文件只被编译一次，</span><span>如果没有在</span><span lang=EN-US style="FONT-FAMILY: 'courier new'">Type1.h</span><span>中加这句话</span><span>，</span><span>那么在</span><span lang=EN-US style="FONT-FAMILY: 'courier new'">main.cpp</span><span>里面包含了两次</span><span lang=EN-US style="FONT-FAMILY: 'courier new'">Type1.h</span><span>，</span><span style="FONT-FAMILY: 'Courier New'"> </span><span>就相当于在</span><span lang=EN-US style="FONT-FAMILY: 'courier new'">main.cpp</span><span>里面定义了两次</span><span lang=EN-US style="FONT-FAMILY: 'courier new'">Type</span><span>类，</span><span style="FONT-FAMILY: 'Courier New'"> </span><span>自然就是类型重定义了。</span></p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #008000">//</span><span style="COLOR: #008000">#pragma&nbsp;once</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;Type<br><img id=Codehighlighter1_26_28_Open_Image onclick="this.style.display='none'; Codehighlighter1_26_28_Open_Text.style.display='none'; Codehighlighter1_26_28_Closed_Image.style.display='inline'; Codehighlighter1_26_28_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_26_28_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_26_28_Closed_Text.style.display='none'; Codehighlighter1_26_28_Open_Image.style.display='inline'; Codehighlighter1_26_28_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_26_28_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_26_28_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span></div>
<br>Main.cpp:<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">#include&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Type1.h</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>#include&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Type1.h</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;argc,&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">argv[])<br><img id=Codehighlighter1_71_86_Open_Image onclick="this.style.display='none'; Codehighlighter1_71_86_Open_Text.style.display='none'; Codehighlighter1_71_86_Closed_Image.style.display='inline'; Codehighlighter1_71_86_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_71_86_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_71_86_Closed_Text.style.display='none'; Codehighlighter1_71_86_Open_Image.style.display='inline'; Codehighlighter1_71_86_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_71_86_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_71_86_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span></div>
<br>
<p class=MsoPlainText><strong><span lang=EN-US style="FONT-FAMILY: 'courier new'">2 </span></strong><strong><span>两个不同的头文件中定义了相同的类型（均有</span></strong><strong><span lang=EN-US style="FONT-FAMILY: 'courier new'">#pragma once</span></strong><strong><span>）<br><br></span></strong><strong><span lang=EN-US style="FONT-FAMILY: 'courier new'">Type1.h:</span></strong><span lang=EN-US style="FONT-FAMILY: 'courier new'"><o:p></o:p></span><strong><span lang=EN-US style="FONT-FAMILY: 'courier new'">Type2.h:</span></strong><span lang=EN-US style="FONT-FAMILY: 'courier new'"><o:p></o:p></span><strong><span lang=EN-US style="FONT-FAMILY: 'courier new'">Main.cpp:<o:p></o:p></span></strong></p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">#pragma&nbsp;once<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;Type<br><img id=Codehighlighter1_24_27_Open_Image onclick="this.style.display='none'; Codehighlighter1_24_27_Open_Text.style.display='none'; Codehighlighter1_24_27_Closed_Image.style.display='inline'; Codehighlighter1_24_27_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_24_27_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_24_27_Closed_Text.style.display='none'; Codehighlighter1_24_27_Open_Image.style.display='inline'; Codehighlighter1_24_27_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_24_27_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_24_27_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span></div>
<br><br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">#pragma&nbsp;once<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;Type<br><img id=Codehighlighter1_24_32_Open_Image onclick="this.style.display='none'; Codehighlighter1_24_32_Open_Text.style.display='none'; Codehighlighter1_24_32_Closed_Image.style.display='inline'; Codehighlighter1_24_32_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_24_32_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_24_32_Closed_Text.style.display='none'; Codehighlighter1_24_32_Open_Image.style.display='inline'; Codehighlighter1_24_32_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_24_32_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_24_32_Open_Text><span style="COLOR: #000000">{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000">;</span></div>
<br><br>这里<span lang=EN-US style="FONT-FAMILY: 'courier new'">main.cpp</span><span>中同时包含了</span><span lang=EN-US style="FONT-FAMILY: 'courier new'">Type1.h, Type2.h</span><span>两个头文件，</span><span style="FONT-FAMILY: 'Courier New'"> </span><span>虽然其文件头都有</span><span lang=EN-US style="FONT-FAMILY: 'courier new'">#pragma once</span><span>，但因为是不同的文件，</span><span style="FONT-FAMILY: 'Courier New'"> </span><span>预编译器还是会两次把</span><span lang=EN-US style="FONT-FAMILY: 'courier new'">Type</span><span>类的定义放在</span><span lang=EN-US style="FONT-FAMILY: 'courier new'">Main.cpp</span><span>中，</span><span style="FONT-FAMILY: 'Courier New'"> </span><span>所以也会出现了重定义。<br><br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">#include&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Type1.h</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>#include&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Type2.h</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;argc,&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">argv[])<br><img id=Codehighlighter1_71_86_Open_Image onclick="this.style.display='none'; Codehighlighter1_71_86_Open_Text.style.display='none'; Codehighlighter1_71_86_Closed_Image.style.display='inline'; Codehighlighter1_71_86_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_71_86_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_71_86_Closed_Text.style.display='none'; Codehighlighter1_71_86_Open_Image.style.display='inline'; Codehighlighter1_71_86_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_71_86_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_71_86_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span></div>
<br>
<p class=MsoPlainText><strong><span lang=EN-US style="FONT-FAMILY: 'courier new'">3 </span></strong><strong><span>从两个不同的路径包含了同一个头文件</span></strong><strong><span lang=EN-US style="FONT-FAMILY: 'courier new'"><o:p></o:p></span></strong></p>
<p class=MsoPlainText><span><font face="Courier New">&nbsp; </font>前面两种是比较常见，</span><span style="FONT-FAMILY: 'Courier New'"> </span><span>也是比较容易解决的情况，</span><span style="FONT-FAMILY: 'Courier New'"> </span><span>而这里要讲的第三种情况，</span><span style="FONT-FAMILY: 'Courier New'"> </span><span>比较少见，</span><span style="FONT-FAMILY: 'Courier New'"> </span><span>而且一般出现在有虚拟映射盘的时候。（这样才能做到从两个不同的路径包含同一个头文件），</span><span style="FONT-FAMILY: 'Courier New'"> </span><span>其他会在什么时候出现，</span><span style="FONT-FAMILY: 'Courier New'"> </span><span>我还没想到，</span><span style="FONT-FAMILY: 'Courier New'"> </span><span>知道的朋友顶一下：）。下面我来分析一下：<br></span><span lang=EN-US style="FONT-FAMILY: 'courier new'">1</span><span>）</span><span style="FONT-FAMILY: 'Courier New'"> </span><span>有</span><span lang=EN-US style="FONT-FAMILY: 'courier new'">VC</span><span>工程在</span><span lang=EN-US style="FONT-FAMILY: 'courier new'">D:\Test</span><span>目录下。<br></span><span lang=EN-US style="FONT-FAMILY: 'courier new'">2</span><span>）</span><span style="FONT-FAMILY: 'Courier New'"> </span><span>映射虚拟盘</span><span lang=EN-US style="FONT-FAMILY: 'courier new'">X</span><span>为</span><span lang=EN-US style="FONT-FAMILY: 'courier new'">D:\Test. <br></span><em><span>不熟悉的网友可以按此操作</span></em><em><span lang=EN-US style="FONT-FAMILY: 'courier new'">: </span></em><em><span>开始</span></em><em><span lang=EN-US style="FONT-FAMILY: 'courier new'">-&gt;</span></em><em><span>运行</span></em><em><span lang=EN-US style="FONT-FAMILY: 'courier new'">-&gt;</span></em><em><span>在运行窗口输入：</span></em><em><span lang=EN-US style="FONT-FAMILY: 'courier new'">cmd-&gt;</span></em><em><span>在</span></em><em><span lang=EN-US style="FONT-FAMILY: 'courier new'">cmd</span></em><em><span>窗口输入：<br></span></em><em><span lang=EN-US style="FONT-FAMILY: 'courier new'">Subst X: D:\Test-&gt;</span></em><em><span>回车。<br></span></em><span lang=EN-US style="FONT-FAMILY: 'courier new'">3</span><span>）</span><span style="FONT-FAMILY: 'Courier New'"> </span><span>该工程有文件</span><span lang=EN-US style="FONT-FAMILY: 'courier new'">Type1.h, main.cpp<o:p></o:p></span></p>
<p class=MsoPlainText><strong><span lang=EN-US style="FONT-FAMILY: 'courier new'">Type1.h:<o:p></o:p></span></strong></p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">#pragma&nbsp;once<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;Type<br><img id=Codehighlighter1_24_27_Open_Image onclick="this.style.display='none'; Codehighlighter1_24_27_Open_Text.style.display='none'; Codehighlighter1_24_27_Closed_Image.style.display='inline'; Codehighlighter1_24_27_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_24_27_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_24_27_Closed_Text.style.display='none'; Codehighlighter1_24_27_Open_Image.style.display='inline'; Codehighlighter1_24_27_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_24_27_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_24_27_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000">;</span></div>
<br>
<p class=MsoPlainText>Main.cpp:<o:p></o:p></p>
<p class=MsoPlainText><span></span><span lang=EN-US style="FONT-FAMILY: 'courier new'">main.cpp</span><span>这样包含了两个头文件，</span><span style="FONT-FAMILY: 'Courier New'"> </span><span>从本质上来讲，</span><span style="FONT-FAMILY: 'Courier New'"> </span><span>它们都对应于物理盘</span><span lang=EN-US style="FONT-FAMILY: 'courier new'">D:\Test</span><span>下的文件</span><span lang=EN-US style="FONT-FAMILY: 'courier new'">Type1.h, </span><span>是同一个文件。</span><span>但在不同的操作下，</span><span lang=EN-US style="FONT-FAMILY: 'courier new'"> VC</span><span>对其有不同的解释。</span><span lang=EN-US style="FONT-FAMILY: 'courier new'">#include "X:\Type1.h"</span><span>用的是绝对路径，</span><span style="FONT-FAMILY: 'Courier New'"> </span><span>自然没有什么异议，</span><span style="FONT-FAMILY: 'Courier New'"> </span><span>但</span><span lang=EN-US style="FONT-FAMILY: 'courier new'">#include "Type1.h"</span><span>却有些变化</span><span lang=EN-US style="FONT-FAMILY: 'courier new'">:<br></span><span><font face="Courier New">*</font>假如我从</span><span lang=EN-US style="FONT-FAMILY: 'courier new'">D:\Test\</span><span>下打开工程，</span><span style="FONT-FAMILY: 'Courier New'"> </span><span>那么</span><span lang=EN-US style="FONT-FAMILY: 'courier new'">#include "Type1.h"</span><span>其实就是</span><span lang=EN-US style="FONT-FAMILY: 'courier new'">#include "D:\Test\Type1.h" <br></span><span>*假如从</span><span lang=EN-US style="FONT-FAMILY: 'courier new'">X:\</span><span>下打开工程，那么</span><span lang=EN-US style="FONT-FAMILY: 'courier new'">#include "Type1.h"</span><span>就解释为</span><span lang=EN-US style="FONT-FAMILY: 'courier new'">#include "X:\Type1.h"</span></p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">#include&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Type1.h</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>#include&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">X:Type1.h</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;argc,&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">argv[])<br><img id=Codehighlighter1_73_88_Open_Image onclick="this.style.display='none'; Codehighlighter1_73_88_Open_Text.style.display='none'; Codehighlighter1_73_88_Closed_Image.style.display='inline'; Codehighlighter1_73_88_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_73_88_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_73_88_Closed_Text.style.display='none'; Codehighlighter1_73_88_Open_Image.style.display='inline'; Codehighlighter1_73_88_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_73_88_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_73_88_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span></div>
<br>这里我们在
<p class=MsoPlainText><span lang=EN-US style="FONT-FAMILY: 'courier new'"><o:p></o:p></span></p>
<p class=MsoPlainText><span lang=EN-US style="FONT-FAMILY: 'courier new'">4</span><span>）</span><span style="FONT-FAMILY: 'Courier New'"> </span><span>在</span><span lang=EN-US style="FONT-FAMILY: 'courier new'">D:\Test</span><span>下打开工程，</span><span style="FONT-FAMILY: 'Courier New'"> </span><span>编译，</span><span style="FONT-FAMILY: 'Courier New'"> </span><span>出现类型</span><span lang=EN-US style="FONT-FAMILY: 'courier new'">Type</span><span>重复定义错误</span><span lang=EN-US style="FONT-FAMILY: 'courier new'"><o:p></o:p></span></p>
<p class=MsoPlainText><span>这种情况下，</span><span lang=EN-US style="FONT-FAMILY: 'courier new'">main.cpp</span><span>预编译为</span><span lang=EN-US style="FONT-FAMILY: 'courier new'">:<o:p></o:p></span></p>
<p class=MsoPlainText><span lang=EN-US style="FONT-FAMILY: 'courier new'">Main.cpp:<o:p></o:p></span></p>
<p class=MsoPlainText><span lang=EN-US style="FONT-FAMILY: 'courier new'"></span><span>只保证本文件被编译一次，</span><span style="FONT-FAMILY: 'Courier New'"> </span><span>这里</span><span lang=EN-US style="FONT-FAMILY: 'courier new'">VC</span><span>将其认为是两个不同的文件，</span><span style="FONT-FAMILY: 'Courier New'"> </span><span>所以都要编译，</span><span style="FONT-FAMILY: 'Courier New'"> </span><span>出现编译错误自然也就不奇怪了。<br>&nbsp;&nbsp;&nbsp; </span><span>当然，</span><span style="FONT-FAMILY: 'Courier New'"> </span><span>这里如果从</span><span lang=EN-US style="FONT-FAMILY: 'courier new'">X:\ </span><span>下打开工程的话，</span><span lang=EN-US style="FONT-FAMILY: 'courier new'">VC</span><span>就会认为都是从</span><span lang=EN-US style="FONT-FAMILY: 'courier new'">X:\Type1.h</span><span>下包含这个文件，</span><span lang=EN-US style="FONT-FAMILY: 'courier new'">#pragma once</span><span>起到了作用，</span><span style="FONT-FAMILY: 'Courier New'"> </span><span>也就不会出现类型重定义了</span><span lang=EN-US style="FONT-FAMILY: 'courier new'"><o:p></o:p></span></p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">#include&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">D:TestType1.h</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>#include&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">X:Type1.h</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;argc,&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">argv[])<br><img id=Codehighlighter1_79_94_Open_Image onclick="this.style.display='none'; Codehighlighter1_79_94_Open_Text.style.display='none'; Codehighlighter1_79_94_Closed_Image.style.display='inline'; Codehighlighter1_79_94_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_79_94_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_79_94_Closed_Text.style.display='none'; Codehighlighter1_79_94_Open_Image.style.display='inline'; Codehighlighter1_79_94_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_79_94_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_79_94_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span></div>
<p>&nbsp;</p>
#pragma once
<p class=MsoPlainText><span lang=EN-US style="FONT-FAMILY: 'courier new'"><o:p></o:p></span></p>
<h2><span style="FONT-FAMILY: 黑体"><font size=2>总结</font></span></h2>
<p class=MsoPlainText style="TEXT-INDENT: 21pt"><span>我在</span><span lang=EN-US style="FONT-FAMILY: 'courier new'">VC7, VC8,</span><span>和</span><a href="http://www.bloodshed.net/"><span lang=EN-US style="FONT-FAMILY: 'courier new'"><font color=#000080><u>Dev C++</u></font></span></a><span>中都测试了第三种情况，</span><span style="FONT-FAMILY: 'Courier New'"> </span><span>发现只有</span><span lang=EN-US style="FONT-FAMILY: 'courier new'">Dev C++</span><span>是可以通过编译的。这可能是微软</span><span lang=EN-US style="FONT-FAMILY: 'courier new'">VC</span><span>的</span><span lang=EN-US style="FONT-FAMILY: 'courier new'">#pragma once</span><span>还不够智能吧，轻易的被</span><span lang=EN-US style="FONT-FAMILY: 'courier new'">Windows</span><span>的虚拟盘给蒙蔽了双眼，</span><span style="FONT-FAMILY: 'Courier New'"> </span><span>看不到其本质（只是猜测，</span><span style="FONT-FAMILY: 'Courier New'"> </span><span>或许</span><span lang=EN-US style="FONT-FAMILY: 'courier new'">VC</span><span>这么处理是有其他用意的）。</span><span lang=EN-US style="FONT-FAMILY: 'courier new'"><o:p></o:p></span></p>
<p class=MsoPlainText style="TEXT-INDENT: 21pt"><span>因为在稍大一点的工程开发中，</span><span style="FONT-FAMILY: 'Courier New'"> </span><span>我们一般都会用虚拟盘来方便工作，</span><span style="FONT-FAMILY: 'Courier New'"> </span><span>一是访问快捷，简化了路径，</span><span style="FONT-FAMILY: 'Courier New'"> </span><span>二是因为多人协同开发，我们一般希望大家源代码路径相同，但我们不应强制要求大家都把源代码放死在某一目录下，</span><span style="FONT-FAMILY: 'Courier New'"> </span><span>这时把你放源代码的路径映射为一个虚拟盘（比如说统一为</span><span lang=EN-US style="FONT-FAMILY: 'courier new'">X:</span><span>）就能把大家的代码路径统一起来了。但是另一方面，有了虚拟盘，</span><span style="FONT-FAMILY: 'Courier New'"> </span><span>就为出现类型重定义提供了条件，</span><span style="FONT-FAMILY: 'Courier New'"> </span><span>以下是我得出的两个解决方法：<br></span><span><br>1 </span><span>抛弃</span><span lang=EN-US style="FONT-FAMILY: 'courier new'">#pragma once</span><span>使用古老但集稳定性与移植性于一身的</span><span lang=EN-US style="FONT-FAMILY: 'courier new'"><o:p></o:p></span></p>
<p class=MsoPlainText style="MARGIN-LEFT: 39pt"><span></span>来保证头文件只被编译一次。这样不管是包含两个相同的文件，还是包含两个不同的文件，或是包两个文件相同但路径不同的文件， 只要_XXX_H被定义过， 就不会再编译那个编译(但这里我们要保证_XXX_H的唯一性， 如果两个不同的头文件里用了同一_XXX_H,是会出问题的)</p>
<p>&nbsp;</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">#ifndef&nbsp;_XXX_H<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>#define&nbsp;_XXX_H<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><img src="http://www.cppblog.com/Images/dot.gif"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>#endif</span></div>
<br>2 在包含头文件时，不要使用绝对路径， 哪怕那是虚拟盘的绝对路径。</span>
<img src ="http://www.cppblog.com/luyu16404/aggbug/44096.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/luyu16404/" target="_blank">yutou</a> 2008-03-10 16:32 <a href="http://www.cppblog.com/luyu16404/archive/2008/03/10/44096.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用转换构造函数还是类型转换函数</title><link>http://www.cppblog.com/luyu16404/archive/2008/01/14/41127.html</link><dc:creator>yutou</dc:creator><author>yutou</author><pubDate>Mon, 14 Jan 2008 07:15:00 GMT</pubDate><guid>http://www.cppblog.com/luyu16404/archive/2008/01/14/41127.html</guid><wfw:comment>http://www.cppblog.com/luyu16404/comments/41127.html</wfw:comment><comments>http://www.cppblog.com/luyu16404/archive/2008/01/14/41127.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/luyu16404/comments/commentRss/41127.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/luyu16404/services/trackbacks/41127.html</trackback:ping><description><![CDATA[看了书，有的懵。在VS2005中测试了一下。<br><br>测试代码
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008080">&nbsp;1</span><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #008000">//</span><span style="COLOR: #008000">假设已经定义了类Test</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">&nbsp;2</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;3</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main()<br></span><span style="COLOR: #008080">&nbsp;4</span><span style="COLOR: #000000"><img id=Codehighlighter1_27_438_Open_Image onclick="this.style.display='none'; Codehighlighter1_27_438_Open_Text.style.display='none'; Codehighlighter1_27_438_Closed_Image.style.display='inline'; Codehighlighter1_27_438_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_27_438_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_27_438_Closed_Text.style.display='none'; Codehighlighter1_27_438_Open_Image.style.display='inline'; Codehighlighter1_27_438_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_27_438_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_27_438_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">&nbsp;5</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;Test&nbsp;T1&nbsp;,&nbsp;T2(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">&nbsp;6</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">double</span><span style="COLOR: #000000">&nbsp;D1&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">,&nbsp;D2&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0.1</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">&nbsp;7</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br></span><span style="COLOR: #008080">&nbsp;8</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">例1</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">&nbsp;9</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;T1&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;T2&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;D2;&nbsp;<br></span><span style="COLOR: #008080">10</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">对于上面的表达式，VS2005是这样处理的：执行语句，发现T1是Test类对象，执行T2&nbsp;+&nbsp;D2；在这个处理中，VS2005调用Test类中的double类型转换构造函数（假设已经定义此函数），把D2转换成一个临时Test类对象,然后与对象T2相加，之后把值赋予对象T1<br></span><span style="COLOR: #008080">11</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br></span><span style="COLOR: #008080">12</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">例2</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">13</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;D1&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;T2&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;D2;<br></span><span style="COLOR: #008080">14</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">对于上面的表达式，VS2005先判断表达式左边的变量的数据类型，确定D1是double类型数据，然后执行T2&nbsp;+&nbsp;D2；在这个处理中，VS2005调用Test类中的类型转换函数（假设已经对此函数定义），把对象T2转换成double类型数据，然后和D2相加，最后把值赋予D1</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">15</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&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></span><span style="COLOR: #008080">16</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span></div>
<img src ="http://www.cppblog.com/luyu16404/aggbug/41127.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/luyu16404/" target="_blank">yutou</a> 2008-01-14 15:15 <a href="http://www.cppblog.com/luyu16404/archive/2008/01/14/41127.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>visual studio 2005中的双目运算符重载</title><link>http://www.cppblog.com/luyu16404/archive/2008/01/12/41034.html</link><dc:creator>yutou</dc:creator><author>yutou</author><pubDate>Sat, 12 Jan 2008 09:37:00 GMT</pubDate><guid>http://www.cppblog.com/luyu16404/archive/2008/01/12/41034.html</guid><wfw:comment>http://www.cppblog.com/luyu16404/comments/41034.html</wfw:comment><comments>http://www.cppblog.com/luyu16404/archive/2008/01/12/41034.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/luyu16404/comments/commentRss/41034.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/luyu16404/services/trackbacks/41034.html</trackback:ping><description><![CDATA[书上的一些代码在VS里不能通过编译，比如重载双目运算符，假如把双目运算符重载函数定义为类的成员函数，就无法通过编译，一大把的error massage说不能访问private成员什么的。然后把函数改成在类中声明为友元函数，编译就能过。。<br>把今天的习题贴上来，给以后留个参考，以免再出现这种问题又不知道该花我多少时间。<br><br>main.cpp<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008080">&nbsp;1</span><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #008000">//</span><span style="COLOR: #008000">主函数文件<br></span><span style="COLOR: #008080">&nbsp;2</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br></span><span style="COLOR: #008080">&nbsp;3</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">老谭说vc&nbsp;6得把下面的"&nbsp;&lt;iostream&gt;&nbsp;"改成带&nbsp;.h后缀的iostream文件，VS这里不用改了，写成下面的形式就行，而且好象已经没有了带&nbsp;.h后缀的iostream了，至少我试了一下说找不到文件和目录</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">&nbsp;4</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">#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></span><span style="COLOR: #008080">&nbsp;5</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>#include&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">10_2_stdafx.h</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;6</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">加conio使用getch函数报C4996错误的问题我还是没有解决</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">&nbsp;7</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">#include&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">conio.h</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;8</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">假如要搞运算符重载，using&nbsp;namespace&nbsp;std已经不需要了，所以下面这行给注释掉了<br></span><span style="COLOR: #008080">&nbsp;9</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">using&nbsp;namespace&nbsp;std;&nbsp;</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">10</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">11</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br></span><span style="COLOR: #008080">12</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main()<br></span><span style="COLOR: #008080">13</span><span style="COLOR: #000000"><img id=Codehighlighter1_306_455_Open_Image onclick="this.style.display='none'; Codehighlighter1_306_455_Open_Text.style.display='none'; Codehighlighter1_306_455_Closed_Image.style.display='inline'; Codehighlighter1_306_455_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_306_455_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_306_455_Closed_Text.style.display='none'; Codehighlighter1_306_455_Open_Image.style.display='inline'; Codehighlighter1_306_455_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_306_455_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_306_455_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">14</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;number&nbsp;c1(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">)&nbsp;,&nbsp;c2(</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">)&nbsp;,&nbsp;c3;<br></span><span style="COLOR: #008080">15</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;c3&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;c2&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;c1;<br></span><span style="COLOR: #008080">16</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;c3.display();<br></span><span style="COLOR: #008080">17</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br></span><span style="COLOR: #008080">18</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;c3&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;c2&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;c1;<br></span><span style="COLOR: #008080">19</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;c3.display();<br></span><span style="COLOR: #008080">20</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<br></span><span style="COLOR: #008080">21</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;c3&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;c2&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">&nbsp;c1;<br></span><span style="COLOR: #008080">22</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;c3.display();<br></span><span style="COLOR: #008080">23</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br></span><span style="COLOR: #008080">24</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;getch();<br></span><span style="COLOR: #008080">25</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&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></span><span style="COLOR: #008080">26</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span></div>
<br>10_2_stdafx.h<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008080">&nbsp;1</span><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #008000">//</span><span style="COLOR: #008000">头文件</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">&nbsp;2</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;3</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>#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></span><span style="COLOR: #008080">&nbsp;4</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">这里要加上下面这行</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">&nbsp;5</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></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></span><span style="COLOR: #008080">&nbsp;6</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br></span><span style="COLOR: #008080">&nbsp;7</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;number<br></span><span style="COLOR: #008080">&nbsp;8</span><span style="COLOR: #000000"><img id=Codehighlighter1_74_506_Open_Image onclick="this.style.display='none'; Codehighlighter1_74_506_Open_Text.style.display='none'; Codehighlighter1_74_506_Closed_Image.style.display='inline'; Codehighlighter1_74_506_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_74_506_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_74_506_Closed_Text.style.display='none'; Codehighlighter1_74_506_Open_Image.style.display='inline'; Codehighlighter1_74_506_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_74_506_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_74_506_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">&nbsp;9</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">:<br></span><span style="COLOR: #008080">10</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">有不使用构造函数初始化的对象加上下面这行</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">11</span><span style="COLOR: #008000"><img id=Codehighlighter1_125_143_Open_Image onclick="this.style.display='none'; Codehighlighter1_125_143_Open_Text.style.display='none'; Codehighlighter1_125_143_Closed_Image.style.display='inline'; Codehighlighter1_125_143_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_125_143_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_125_143_Closed_Text.style.display='none'; Codehighlighter1_125_143_Open_Image.style.display='inline'; Codehighlighter1_125_143_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;number()&nbsp;</span><span id=Codehighlighter1_125_143_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_125_143_Open_Text><span style="COLOR: #000000">{&nbsp;num</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">&nbsp;;&nbsp;word</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;&nbsp;}</span></span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">12</span><span style="COLOR: #000000"><img id=Codehighlighter1_183_184_Open_Image onclick="this.style.display='none'; Codehighlighter1_183_184_Open_Text.style.display='none'; Codehighlighter1_183_184_Closed_Image.style.display='inline'; Codehighlighter1_183_184_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_183_184_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_183_184_Closed_Text.style.display='none'; Codehighlighter1_183_184_Open_Image.style.display='inline'; Codehighlighter1_183_184_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;number(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;x&nbsp;,&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;y):num(x),word(y)</span><span id=Codehighlighter1_183_184_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_183_184_Open_Text><span style="COLOR: #000000">{}</span></span><span style="COLOR: #000000">&nbsp;<br></span><span style="COLOR: #008080">13</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">本来这里应该写好一点，一些可能的情况没有写进去，我懒得写了</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">14</span><span style="COLOR: #008000"><img id=Codehighlighter1_243_289_Open_Image onclick="this.style.display='none'; Codehighlighter1_243_289_Open_Text.style.display='none'; Codehighlighter1_243_289_Closed_Image.style.display='inline'; Codehighlighter1_243_289_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_243_289_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_243_289_Closed_Text.style.display='none'; Codehighlighter1_243_289_Open_Image.style.display='inline'; Codehighlighter1_243_289_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;display()&nbsp;</span><span id=Codehighlighter1_243_289_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_243_289_Open_Text><span style="COLOR: #000000">{&nbsp;cout</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">the&nbsp;objet:</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">num</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&amp;&nbsp;&amp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">word</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">endl;&nbsp;}</span></span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">15</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">下面是三个友元重载函数</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">16</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;friend&nbsp;number&nbsp;</span><span style="COLOR: #0000ff">operator</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;(number&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">t1&nbsp;,&nbsp;number&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">t2&nbsp;);<br></span><span style="COLOR: #008080">17</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;friend&nbsp;number&nbsp;</span><span style="COLOR: #0000ff">operator</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;(number&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">t1&nbsp;,&nbsp;number&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">t2&nbsp;);<br></span><span style="COLOR: #008080">18</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;friend&nbsp;number&nbsp;</span><span style="COLOR: #0000ff">operator</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">&nbsp;(number&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">t1&nbsp;,&nbsp;number&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">t2&nbsp;);<br></span><span style="COLOR: #008080">19</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #0000ff">private</span><span style="COLOR: #000000">:<br></span><span style="COLOR: #008080">20</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;num;<br></span><span style="COLOR: #008080">21</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;word;<br></span><span style="COLOR: #008080">22</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">23</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span></div>
<br>func_def.cpp<br>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008080">&nbsp;1</span><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #008000">//</span><span style="COLOR: #008000">重载函数定义文件<br></span><span style="COLOR: #008080">&nbsp;2</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br></span><span style="COLOR: #008080">&nbsp;3</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">这里的iostream和名字空间和main的一样</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">&nbsp;4</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">#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></span><span style="COLOR: #008080">&nbsp;5</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>#include&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">10_2_stdafx.h</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;6</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">using&nbsp;namespace&nbsp;std;<br></span><span style="COLOR: #008080">&nbsp;7</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br></span><span style="COLOR: #008080">&nbsp;8</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">减法</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">&nbsp;9</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">number&nbsp;</span><span style="COLOR: #0000ff">operator</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;(number&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">t1&nbsp;,&nbsp;number&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">t2)<br></span><span style="COLOR: #008080">10</span><span style="COLOR: #000000"><img id=Codehighlighter1_157_213_Open_Image onclick="this.style.display='none'; Codehighlighter1_157_213_Open_Text.style.display='none'; Codehighlighter1_157_213_Closed_Image.style.display='inline'; Codehighlighter1_157_213_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_157_213_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_157_213_Closed_Text.style.display='none'; Codehighlighter1_157_213_Open_Image.style.display='inline'; Codehighlighter1_157_213_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_157_213_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_157_213_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">11</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;number(&nbsp;t1.num&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;t2.num&nbsp;,&nbsp;t1.word&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;t2.word);<br></span><span style="COLOR: #008080">12</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">13</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br></span><span style="COLOR: #008080">14</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">乘法</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">15</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">number&nbsp;</span><span style="COLOR: #0000ff">operator</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;(number&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">t1&nbsp;,&nbsp;number&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">t2&nbsp;)<br></span><span style="COLOR: #008080">16</span><span style="COLOR: #000000"><img id=Codehighlighter1_266_324_Open_Image onclick="this.style.display='none'; Codehighlighter1_266_324_Open_Text.style.display='none'; Codehighlighter1_266_324_Closed_Image.style.display='inline'; Codehighlighter1_266_324_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_266_324_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_266_324_Closed_Text.style.display='none'; Codehighlighter1_266_324_Open_Image.style.display='inline'; Codehighlighter1_266_324_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_266_324_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_266_324_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">17</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;number&nbsp;(&nbsp;t1.num&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;t2.num&nbsp;,&nbsp;t1.word&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;t2.word&nbsp;);<br></span><span style="COLOR: #008080">18</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">19</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br></span><span style="COLOR: #008080">20</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">除法</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">21</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000">number&nbsp;</span><span style="COLOR: #0000ff">operator</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">&nbsp;(number&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">t1&nbsp;,&nbsp;number&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">t2&nbsp;)<br></span><span style="COLOR: #008080">22</span><span style="COLOR: #000000"><img id=Codehighlighter1_377_435_Open_Image onclick="this.style.display='none'; Codehighlighter1_377_435_Open_Text.style.display='none'; Codehighlighter1_377_435_Closed_Image.style.display='inline'; Codehighlighter1_377_435_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_377_435_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_377_435_Closed_Text.style.display='none'; Codehighlighter1_377_435_Open_Image.style.display='inline'; Codehighlighter1_377_435_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_377_435_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_377_435_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">23</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;number&nbsp;(&nbsp;t1.num&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">&nbsp;t2.num&nbsp;,&nbsp;t1.word&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">&nbsp;t2.word&nbsp;);<br></span><span style="COLOR: #008080">24</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">25</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br></span><span style="COLOR: #008080">26</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">考虑到时间问题，输出的一些处理细节没有加上去。。。</span></div>
<img src ="http://www.cppblog.com/luyu16404/aggbug/41034.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/luyu16404/" target="_blank">yutou</a> 2008-01-12 17:37 <a href="http://www.cppblog.com/luyu16404/archive/2008/01/12/41034.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>