﻿<?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++博客-&amp;豪</title><link>http://www.cppblog.com/qywyh/</link><description>豪-&gt;blog</description><language>zh-cn</language><lastBuildDate>Mon, 08 Sep 2008 02:10:58 GMT</lastBuildDate><pubDate>Mon, 08 Sep 2008 02:10:58 GMT</pubDate><ttl>60</ttl><item><title>真是水,居然可以这样将int转成str</title><link>http://www.cppblog.com/qywyh/archive/2008/07/25/57122.html</link><dc:creator>豪</dc:creator><author>豪</author><pubDate>Fri, 25 Jul 2008 03:34:00 GMT</pubDate><guid>http://www.cppblog.com/qywyh/archive/2008/07/25/57122.html</guid><wfw:comment>http://www.cppblog.com/qywyh/comments/57122.html</wfw:comment><comments>http://www.cppblog.com/qywyh/archive/2008/07/25/57122.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cppblog.com/qywyh/comments/commentRss/57122.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/qywyh/services/trackbacks/57122.html</trackback:ping><description><![CDATA[&nbsp;&nbsp; char result[100];<br>&nbsp;&nbsp; int num=24;<br>&nbsp;&nbsp; sprintf( result, "%d", num ); 
<img src ="http://www.cppblog.com/qywyh/aggbug/57122.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/qywyh/" target="_blank">豪</a> 2008-07-25 11:34 <a href="http://www.cppblog.com/qywyh/archive/2008/07/25/57122.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>内存池(version1.1)</title><link>http://www.cppblog.com/qywyh/archive/2008/04/21/47737.html</link><dc:creator>豪</dc:creator><author>豪</author><pubDate>Mon, 21 Apr 2008 08:15:00 GMT</pubDate><guid>http://www.cppblog.com/qywyh/archive/2008/04/21/47737.html</guid><wfw:comment>http://www.cppblog.com/qywyh/comments/47737.html</wfw:comment><comments>http://www.cppblog.com/qywyh/archive/2008/04/21/47737.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cppblog.com/qywyh/comments/commentRss/47737.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/qywyh/services/trackbacks/47737.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 再参考了《Modern C++ Design》的FixedAllocator的设计，并且优化了一下算法，虽然最坏时间复杂度还是O(N)的，但是在通常情况下，new/delete的使用已经获得了比较好的性能了。Chunk.h和version1.0的差不多，只是去掉了析构函数，让Chunk直接被FixedAlloctor操作Chunk.h#ifndef&nbsp;CHUNK_H#define&nb...&nbsp;&nbsp;<a href='http://www.cppblog.com/qywyh/archive/2008/04/21/47737.html'>阅读全文</a><img src ="http://www.cppblog.com/qywyh/aggbug/47737.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/qywyh/" target="_blank">豪</a> 2008-04-21 16:15 <a href="http://www.cppblog.com/qywyh/archive/2008/04/21/47737.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>内存池(version1.0)</title><link>http://www.cppblog.com/qywyh/archive/2008/04/20/47678.html</link><dc:creator>豪</dc:creator><author>豪</author><pubDate>Sun, 20 Apr 2008 09:53:00 GMT</pubDate><guid>http://www.cppblog.com/qywyh/archive/2008/04/20/47678.html</guid><wfw:comment>http://www.cppblog.com/qywyh/comments/47678.html</wfw:comment><comments>http://www.cppblog.com/qywyh/archive/2008/04/20/47678.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/qywyh/comments/commentRss/47678.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/qywyh/services/trackbacks/47678.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 用了《Modern C++ Design》上的那个Chunk，在Chunk查找Block的时间是O(1)，但是在MemPool的ChunkList里面查找某内存地址却需要O(n)的时间复杂度，因为我的算法只是线性的便利ChunkLisk的链表，所以但内存池里面同时存在大量小对象时候，效果不是很好，比普通的new还差，但是如果内存池内同时存在的小对象的数目较小的时候，可以获得不错的性能，计划vers...&nbsp;&nbsp;<a href='http://www.cppblog.com/qywyh/archive/2008/04/20/47678.html'>阅读全文</a><img src ="http://www.cppblog.com/qywyh/aggbug/47678.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/qywyh/" target="_blank">豪</a> 2008-04-20 17:53 <a href="http://www.cppblog.com/qywyh/archive/2008/04/20/47678.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>智能指针源码</title><link>http://www.cppblog.com/qywyh/archive/2008/04/17/47408.html</link><dc:creator>豪</dc:creator><author>豪</author><pubDate>Thu, 17 Apr 2008 09:01:00 GMT</pubDate><guid>http://www.cppblog.com/qywyh/archive/2008/04/17/47408.html</guid><wfw:comment>http://www.cppblog.com/qywyh/comments/47408.html</wfw:comment><comments>http://www.cppblog.com/qywyh/archive/2008/04/17/47408.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cppblog.com/qywyh/comments/commentRss/47408.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/qywyh/services/trackbacks/47408.html</trackback:ping><description><![CDATA[智能指针源码，可像普通指针一样使用，但可以自动释放内存，代码很短，看一下就明白原理了。<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">#ifndef&nbsp;AUTOPTR<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000">&nbsp;AUTOPTR</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img id=Codehighlighter1_33_48_Open_Image onclick="this.style.display='none'; Codehighlighter1_33_48_Open_Text.style.display='none'; Codehighlighter1_33_48_Closed_Image.style.display='inline'; Codehighlighter1_33_48_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_33_48_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_33_48_Closed_Text.style.display='none'; Codehighlighter1_33_48_Open_Image.style.display='inline'; Codehighlighter1_33_48_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_33_48_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">/**/</span><span id=Codehighlighter1_33_48_Open_Text><span style="COLOR: #008000">/*</span><span style="COLOR: #008000">*<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;*&nbsp;智能指针类<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>&nbsp;</span><span style="COLOR: #008000">*/</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>template</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;T</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br><img id=Codehighlighter1_82_762_Open_Image onclick="this.style.display='none'; Codehighlighter1_82_762_Open_Text.style.display='none'; Codehighlighter1_82_762_Closed_Image.style.display='inline'; Codehighlighter1_82_762_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_82_762_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_82_762_Closed_Text.style.display='none'; Codehighlighter1_82_762_Open_Image.style.display='inline'; Codehighlighter1_82_762_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;AutoPtr&nbsp;</span><span id=Codehighlighter1_82_762_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_82_762_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;:<br><img id=Codehighlighter1_125_126_Open_Image onclick="this.style.display='none'; Codehighlighter1_125_126_Open_Text.style.display='none'; Codehighlighter1_125_126_Closed_Image.style.display='inline'; Codehighlighter1_125_126_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_125_126_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_125_126_Closed_Text.style.display='none'; Codehighlighter1_125_126_Open_Image.style.display='inline'; Codehighlighter1_125_126_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;AutoPtr(T</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;p&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">)&nbsp;:&nbsp;pointee(p)&nbsp;</span><span id=Codehighlighter1_125_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_125_126_Open_Text><span style="COLOR: #000000">{}</span></span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">默认构造函数</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;template</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;U</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br><img id=Codehighlighter1_209_210_Open_Image onclick="this.style.display='none'; Codehighlighter1_209_210_Open_Text.style.display='none'; Codehighlighter1_209_210_Closed_Image.style.display='inline'; Codehighlighter1_209_210_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_209_210_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_209_210_Closed_Text.style.display='none'; Codehighlighter1_209_210_Open_Image.style.display='inline'; Codehighlighter1_209_210_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AutoPtr(AutoPtr</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">U</span><span style="COLOR: #000000">&gt;&amp;</span><span style="COLOR: #000000">&nbsp;rhs)&nbsp;:&nbsp;pointee(rhs.release())&nbsp;</span><span id=Codehighlighter1_209_210_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_209_210_Open_Text><span style="COLOR: #000000">{}</span></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">复制构造函数</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000"><br><img id=Codehighlighter1_233_249_Open_Image onclick="this.style.display='none'; Codehighlighter1_233_249_Open_Text.style.display='none'; Codehighlighter1_233_249_Closed_Image.style.display='inline'; Codehighlighter1_233_249_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_233_249_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_233_249_Closed_Text.style.display='none'; Codehighlighter1_233_249_Open_Image.style.display='inline'; Codehighlighter1_233_249_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">~</span><span style="COLOR: #000000">AutoPtr()&nbsp;</span><span id=Codehighlighter1_233_249_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_233_249_Open_Text><span style="COLOR: #000000">{delete&nbsp;pointee;}</span></span><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/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;template</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;U</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br><img id=Codehighlighter1_311_388_Open_Image onclick="this.style.display='none'; Codehighlighter1_311_388_Open_Text.style.display='none'; Codehighlighter1_311_388_Closed_Image.style.display='inline'; Codehighlighter1_311_388_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_311_388_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_311_388_Closed_Text.style.display='none'; Codehighlighter1_311_388_Open_Image.style.display='inline'; Codehighlighter1_311_388_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;AutoPtr</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">T</span><span style="COLOR: #000000">&gt;&amp;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">operator</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">(AutoPtr</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">U</span><span style="COLOR: #000000">&gt;&amp;</span><span style="COLOR: #000000">&nbsp;rhs)&nbsp;</span><span id=Codehighlighter1_311_388_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_311_388_Open_Text><span style="COLOR: #000000">{&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">赋值函数</span><span style="COLOR: #008000"><br><img id=Codehighlighter1_340_369_Open_Image onclick="this.style.display='none'; Codehighlighter1_340_369_Open_Text.style.display='none'; Codehighlighter1_340_369_Closed_Image.style.display='inline'; Codehighlighter1_340_369_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_340_369_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_340_369_Closed_Text.style.display='none'; Codehighlighter1_340_369_Open_Image.style.display='inline'; Codehighlighter1_340_369_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;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">rhs)&nbsp;</span><span id=Codehighlighter1_340_369_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_340_369_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;reset(rhs.release());<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/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #0000ff">this</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img id=Codehighlighter1_413_430_Open_Image onclick="this.style.display='none'; Codehighlighter1_413_430_Open_Text.style.display='none'; Codehighlighter1_413_430_Closed_Image.style.display='inline'; Codehighlighter1_413_430_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_413_430_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_413_430_Closed_Text.style.display='none'; Codehighlighter1_413_430_Open_Image.style.display='inline'; Codehighlighter1_413_430_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;T</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">operator</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">()&nbsp;</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;</span><span id=Codehighlighter1_413_430_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_413_430_Open_Text><span style="COLOR: #000000">{</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">pointee;}</span></span><span style="COLOR: #000000">&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<br><img id=Codehighlighter1_458_474_Open_Image onclick="this.style.display='none'; Codehighlighter1_458_474_Open_Text.style.display='none'; Codehighlighter1_458_474_Closed_Image.style.display='inline'; Codehighlighter1_458_474_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_458_474_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_458_474_Closed_Text.style.display='none'; Codehighlighter1_458_474_Open_Image.style.display='inline'; Codehighlighter1_458_474_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;T</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">operator</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">()&nbsp;</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;</span><span id=Codehighlighter1_458_474_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_458_474_Open_Text><span style="COLOR: #000000">{</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;pointee;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img id=Codehighlighter1_493_509_Open_Image onclick="this.style.display='none'; Codehighlighter1_493_509_Open_Text.style.display='none'; Codehighlighter1_493_509_Closed_Image.style.display='inline'; Codehighlighter1_493_509_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_493_509_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_493_509_Closed_Text.style.display='none'; Codehighlighter1_493_509_Open_Image.style.display='inline'; Codehighlighter1_493_509_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;T</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">get</span><span style="COLOR: #000000">()&nbsp;</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;</span><span id=Codehighlighter1_493_509_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_493_509_Open_Text><span style="COLOR: #000000">{</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;pointee;}</span></span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">获取dumb&nbsp;pointer</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000"><br><img id=Codehighlighter1_543_638_Open_Image onclick="this.style.display='none'; Codehighlighter1_543_638_Open_Text.style.display='none'; Codehighlighter1_543_638_Closed_Image.style.display='inline'; Codehighlighter1_543_638_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_543_638_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_543_638_Closed_Text.style.display='none'; Codehighlighter1_543_638_Open_Image.style.display='inline'; Codehighlighter1_543_638_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;T</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;release()&nbsp;</span><span id=Codehighlighter1_543_638_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_543_638_Open_Text><span style="COLOR: #000000">{&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">释放dumb&nbsp;pointer&nbsp;的拥有权，并返回其值</span><span style="COLOR: #008000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;T</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;oldPointee&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;pointee;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pointee&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/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;oldPointee;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000">&nbsp;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<br><img id=Codehighlighter1_663_736_Open_Image onclick="this.style.display='none'; Codehighlighter1_663_736_Open_Text.style.display='none'; Codehighlighter1_663_736_Closed_Image.style.display='inline'; Codehighlighter1_663_736_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_663_736_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_663_736_Closed_Text.style.display='none'; Codehighlighter1_663_736_Open_Image.style.display='inline'; Codehighlighter1_663_736_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;reset(T</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;p</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">)&nbsp;</span><span id=Codehighlighter1_663_736_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_663_736_Open_Text><span style="COLOR: #000000">{&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">重复置p指针</span><span style="COLOR: #008000"><br><img id=Codehighlighter1_694_733_Open_Image onclick="this.style.display='none'; Codehighlighter1_694_733_Open_Text.style.display='none'; Codehighlighter1_694_733_Closed_Image.style.display='inline'; Codehighlighter1_694_733_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_694_733_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_694_733_Closed_Text.style.display='none'; Codehighlighter1_694_733_Open_Image.style.display='inline'; Codehighlighter1_694_733_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;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(pointee&nbsp;</span><span style="COLOR: #000000">!=</span><span style="COLOR: #000000">&nbsp;p)&nbsp;</span><span id=Codehighlighter1_694_733_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_694_733_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;delete&nbsp;pointee;<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;pointee&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;p;<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/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><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/InBlock.gif" align=top></span><span style="COLOR: #0000ff">private</span><span style="COLOR: #000000">&nbsp;:<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;T</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;pointee;<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><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">#endif</span><span style="COLOR: #000000">&nbsp;AUTOPTR</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span></div>
<br>test.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">AutoPtr.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">&lt;</span><span style="COLOR: #000000">iostream</span><span style="COLOR: #000000">&gt;</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">&lt;</span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br><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><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img id=Codehighlighter1_92_253_Open_Image onclick="this.style.display='none'; Codehighlighter1_92_253_Open_Text.style.display='none'; Codehighlighter1_92_253_Closed_Image.style.display='inline'; Codehighlighter1_92_253_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_92_253_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_92_253_Closed_Text.style.display='none'; Codehighlighter1_92_253_Open_Image.style.display='inline'; Codehighlighter1_92_253_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main()&nbsp;</span><span id=Codehighlighter1_92_253_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_92_253_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;AutoPtr</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">&nbsp;p&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">int</span><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: #000000">*</span><span style="COLOR: #000000">p&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">100</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%d\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">p);<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;&nbsp;&nbsp;AutoPtr</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #0000ff">string</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">&nbsp;sp&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">string</span><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: #000000">*</span><span style="COLOR: #000000">sp&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">hello&nbsp;world</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%s\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;sp</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">c_str());<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;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span></div>
<br>
<img src ="http://www.cppblog.com/qywyh/aggbug/47408.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/qywyh/" target="_blank">豪</a> 2008-04-17 17:01 <a href="http://www.cppblog.com/qywyh/archive/2008/04/17/47408.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>php文件上传类v1.0</title><link>http://www.cppblog.com/qywyh/archive/2008/04/12/46901.html</link><dc:creator>豪</dc:creator><author>豪</author><pubDate>Sat, 12 Apr 2008 03:47:00 GMT</pubDate><guid>http://www.cppblog.com/qywyh/archive/2008/04/12/46901.html</guid><wfw:comment>http://www.cppblog.com/qywyh/comments/46901.html</wfw:comment><comments>http://www.cppblog.com/qywyh/archive/2008/04/12/46901.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/qywyh/comments/commentRss/46901.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/qywyh/services/trackbacks/46901.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 今天做面试题，有一个文件上传的，发觉以前做项目为了赶时间都是直接用别人的上传类，交笔试题，怎么也不能用别人的吧，所以就写了一个，可能很多bug，没实际项目测试过，呵呵&lt;?php/**&nbsp;*&nbsp;文件上传类&nbsp;*&nbsp;成员变量带*号必须要初始化&nbsp;*&nbsp;@version&nbsp;1.0&nbsp;*&nbsp;@author&nbsp;howe...&nbsp;&nbsp;<a href='http://www.cppblog.com/qywyh/archive/2008/04/12/46901.html'>阅读全文</a><img src ="http://www.cppblog.com/qywyh/aggbug/46901.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/qywyh/" target="_blank">豪</a> 2008-04-12 11:47 <a href="http://www.cppblog.com/qywyh/archive/2008/04/12/46901.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>