﻿<?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++博客-我的家园</title><link>http://www.cppblog.com/tangmin1010/</link><description /><language>zh-cn</language><lastBuildDate>Tue, 09 Jun 2026 08:54:22 GMT</lastBuildDate><pubDate>Tue, 09 Jun 2026 08:54:22 GMT</pubDate><ttl>60</ttl><item><title>智能指针的学习</title><link>http://www.cppblog.com/tangmin1010/archive/2007/11/30/37546.html</link><dc:creator>一半君子</dc:creator><author>一半君子</author><pubDate>Fri, 30 Nov 2007 04:22:00 GMT</pubDate><guid>http://www.cppblog.com/tangmin1010/archive/2007/11/30/37546.html</guid><wfw:comment>http://www.cppblog.com/tangmin1010/comments/37546.html</wfw:comment><comments>http://www.cppblog.com/tangmin1010/archive/2007/11/30/37546.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/tangmin1010/comments/commentRss/37546.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/tangmin1010/services/trackbacks/37546.html</trackback:ping><description><![CDATA[智能指针的学习<br /><br />   按照我的理解，智能指针简单的说就是一个用于管理成员指针的一个类。一般情况下，这个类都会重载箭头操作符（-&gt;）和解引用操作符（*）。在智能指针的类中会使用一个称为使用计数的技巧，也就是如果增加了一个对该类的成员的指针的拷贝，使用计数就增加一；相反，如果减少一个拷贝，使用计数就减少一。当使用计数为0的时候，就释放成员指针所指向的内存。<br />   在C++ Primer中有一个简单的例子： 
<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"> 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"> 2</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000"> U_Ptr<br /></span><span style="COLOR: #008080"> 3</span><span style="COLOR: #000000"><img id="Codehighlighter1_20_128_Open_Image" onclick="this.style.display='none'; Codehighlighter1_20_128_Open_Text.style.display='none'; Codehighlighter1_20_128_Closed_Image.style.display='inline'; Codehighlighter1_20_128_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_20_128_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_20_128_Closed_Text.style.display='none'; Codehighlighter1_20_128_Open_Image.style.display='inline'; Codehighlighter1_20_128_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span id="Codehighlighter1_20_128_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_20_128_Open_Text"><span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080"> 4</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    friend </span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000"> HasPtr;<br /></span><span style="COLOR: #008080"> 5</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">p;<br /></span><span style="COLOR: #008080"> 6</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> count;<br /></span><span style="COLOR: #008080"> 7</span><span style="COLOR: #000000"><img id="Codehighlighter1_95_96_Open_Image" onclick="this.style.display='none'; Codehighlighter1_95_96_Open_Text.style.display='none'; Codehighlighter1_95_96_Closed_Image.style.display='inline'; Codehighlighter1_95_96_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_95_96_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_95_96_Closed_Text.style.display='none'; Codehighlighter1_95_96_Open_Image.style.display='inline'; Codehighlighter1_95_96_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    U_Ptr(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">pn):p(pn),count(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)</span><span id="Codehighlighter1_95_96_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_95_96_Open_Text"><span style="COLOR: #000000">{}</span></span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080"> 8</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #000000">~</span><span style="COLOR: #000000">U_Ptr()<br /></span><span style="COLOR: #008080"> 9</span><span style="COLOR: #000000"><img id="Codehighlighter1_110_126_Open_Image" onclick="this.style.display='none'; Codehighlighter1_110_126_Open_Text.style.display='none'; Codehighlighter1_110_126_Closed_Image.style.display='inline'; Codehighlighter1_110_126_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_110_126_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_110_126_Closed_Text.style.display='none'; Codehighlighter1_110_126_Open_Image.style.display='inline'; Codehighlighter1_110_126_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span id="Codehighlighter1_110_126_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_110_126_Open_Text"><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" />        delete p;<br /></span><span style="COLOR: #008080">11</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><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: #0000ff">class</span><span style="COLOR: #000000"> HasPtr<br /></span><span style="COLOR: #008080">16</span><span style="COLOR: #000000"><img id="Codehighlighter1_152_608_Open_Image" onclick="this.style.display='none'; Codehighlighter1_152_608_Open_Text.style.display='none'; Codehighlighter1_152_608_Closed_Image.style.display='inline'; Codehighlighter1_152_608_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_152_608_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_152_608_Closed_Text.style.display='none'; Codehighlighter1_152_608_Open_Image.style.display='inline'; Codehighlighter1_152_608_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedBlock.gif" align="top" /></span><span id="Codehighlighter1_152_608_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_152_608_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" />    U_Ptr </span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">ptr;<br /></span><span style="COLOR: #008080">18</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">19</span><span style="COLOR: #000000"><img id="Codehighlighter1_208_209_Open_Image" onclick="this.style.display='none'; Codehighlighter1_208_209_Open_Text.style.display='none'; Codehighlighter1_208_209_Closed_Image.style.display='inline'; Codehighlighter1_208_209_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_208_209_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_208_209_Closed_Text.style.display='none'; Codehighlighter1_208_209_Open_Image.style.display='inline'; Codehighlighter1_208_209_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    HasPtr(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">p):ptr(</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000"> U_Ptr(p))</span><span id="Codehighlighter1_208_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_208_209_Open_Text"><span style="COLOR: #000000">{}</span></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" />    </span><span style="COLOR: #000000">~</span><span style="COLOR: #000000">HasPtr()<br /></span><span style="COLOR: #008080">21</span><span style="COLOR: #000000"><img id="Codehighlighter1_223_266_Open_Image" onclick="this.style.display='none'; Codehighlighter1_223_266_Open_Text.style.display='none'; Codehighlighter1_223_266_Closed_Image.style.display='inline'; Codehighlighter1_223_266_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_223_266_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_223_266_Closed_Text.style.display='none'; Codehighlighter1_223_266_Open_Image.style.display='inline'; Codehighlighter1_223_266_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span id="Codehighlighter1_223_266_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_223_266_Open_Text"><span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080">22</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />        </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(</span><span style="COLOR: #000000">--</span><span style="COLOR: #000000">ptr</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">count </span><span style="COLOR: #000000">==</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">0</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/InBlock.gif" align="top" />            delete ptr;<br /></span><span style="COLOR: #008080">24</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockEnd.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/InBlock.gif" align="top" />    HasPtr(</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000"> HasPtr </span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">otherHasPtr):ptr(otherHasPtr.ptr)<br /></span><span style="COLOR: #008080">26</span><span style="COLOR: #000000"><img id="Codehighlighter1_325_346_Open_Image" onclick="this.style.display='none'; Codehighlighter1_325_346_Open_Text.style.display='none'; Codehighlighter1_325_346_Closed_Image.style.display='inline'; Codehighlighter1_325_346_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_325_346_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_325_346_Closed_Text.style.display='none'; Codehighlighter1_325_346_Open_Image.style.display='inline'; Codehighlighter1_325_346_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span id="Codehighlighter1_325_346_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_325_346_Open_Text"><span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080">27</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />        </span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">ptr</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">count;        <br /></span><span style="COLOR: #008080">28</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">29</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    HasPtr </span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">operator</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">(</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000"> HasPtr </span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">otherHasPtr)<br /></span><span style="COLOR: #008080">30</span><span style="COLOR: #000000"><img id="Codehighlighter1_395_494_Open_Image" onclick="this.style.display='none'; Codehighlighter1_395_494_Open_Text.style.display='none'; Codehighlighter1_395_494_Closed_Image.style.display='inline'; Codehighlighter1_395_494_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_395_494_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_395_494_Closed_Text.style.display='none'; Codehighlighter1_395_494_Open_Image.style.display='inline'; Codehighlighter1_395_494_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span id="Codehighlighter1_395_494_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_395_494_Open_Text"><span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080">31</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />        </span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(</span><span style="COLOR: #000000">--</span><span style="COLOR: #000000">ptr</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">count </span><span style="COLOR: #000000">==</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">)<br /></span><span style="COLOR: #008080">32</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />            delete ptr;<br /></span><span style="COLOR: #008080">33</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />        ptr </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> otherHasPtr.ptr;<br /></span><span style="COLOR: #008080">34</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />        </span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">ptr</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">count;<br /></span><span style="COLOR: #008080">35</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />        </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">*</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">;<br /></span><span style="COLOR: #008080">36</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">37</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">对于整型指针重载-&gt;没有意义<br /></span><span style="COLOR: #008080">38</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">int *operator-&gt;()<br /></span><span style="COLOR: #008080">39</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">{<br /></span><span style="COLOR: #008080">40</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">    return ptr-&gt;p;<br /></span><span style="COLOR: #008080">41</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">}</span><span style="COLOR: #008000"><br /></span><span style="COLOR: #008080">42</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="COLOR: #000000">    </span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">operator</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">()<br /></span><span style="COLOR: #008080">43</span><span style="COLOR: #000000"><img id="Codehighlighter1_583_606_Open_Image" onclick="this.style.display='none'; Codehighlighter1_583_606_Open_Text.style.display='none'; Codehighlighter1_583_606_Closed_Image.style.display='inline'; Codehighlighter1_583_606_Closed_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_583_606_Closed_Image" style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_583_606_Closed_Text.style.display='none'; Codehighlighter1_583_606_Open_Image.style.display='inline'; Codehighlighter1_583_606_Open_Text.style.display='inline';" src="http://www.cppblog.com/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span id="Codehighlighter1_583_606_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_583_606_Open_Text"><span style="COLOR: #000000">{<br /></span><span style="COLOR: #008080">44</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/images/OutliningIndicators/InBlock.gif" align="top" />        </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">(ptr</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">p);<br /></span><span style="COLOR: #008080">45</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="COLOR: #000000"><br /></span><span style="COLOR: #008080">46</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />}</span></span><span style="COLOR: #000000">;</span></div><img src ="http://www.cppblog.com/tangmin1010/aggbug/37546.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/tangmin1010/" target="_blank">一半君子</a> 2007-11-30 12:22 <a href="http://www.cppblog.com/tangmin1010/archive/2007/11/30/37546.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>