﻿<?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++博客-Hinter</title><link>http://www.cppblog.com/district/</link><description>From minus</description><language>zh-cn</language><lastBuildDate>Tue, 14 Apr 2026 23:06:17 GMT</lastBuildDate><pubDate>Tue, 14 Apr 2026 23:06:17 GMT</pubDate><ttl>60</ttl><item><title>待解决问题</title><link>http://www.cppblog.com/district/archive/2011/08/22/154057.html</link><dc:creator>Hinter</dc:creator><author>Hinter</author><pubDate>Mon, 22 Aug 2011 03:26:00 GMT</pubDate><guid>http://www.cppblog.com/district/archive/2011/08/22/154057.html</guid><wfw:comment>http://www.cppblog.com/district/comments/154057.html</wfw:comment><comments>http://www.cppblog.com/district/archive/2011/08/22/154057.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/district/comments/commentRss/154057.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/district/services/trackbacks/154057.html</trackback:ping><description><![CDATA[1、static用于声明函数时有和意义? 在内核驱动中的回调，jni的native函数中，所有的函数都会冠以static.<br />2、线性地址、物理地址和逻辑地址三者的关系。（该死，又忘记了）<br />3、linux中的进程、线程锁有哪些，作用是什么。<img src ="http://www.cppblog.com/district/aggbug/154057.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/district/" target="_blank">Hinter</a> 2011-08-22 11:26 <a href="http://www.cppblog.com/district/archive/2011/08/22/154057.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>小生我折翼了。。</title><link>http://www.cppblog.com/district/archive/2011/08/18/153700.html</link><dc:creator>Hinter</dc:creator><author>Hinter</author><pubDate>Wed, 17 Aug 2011 17:00:00 GMT</pubDate><guid>http://www.cppblog.com/district/archive/2011/08/18/153700.html</guid><wfw:comment>http://www.cppblog.com/district/comments/153700.html</wfw:comment><comments>http://www.cppblog.com/district/archive/2011/08/18/153700.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/district/comments/commentRss/153700.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/district/services/trackbacks/153700.html</trackback:ping><description><![CDATA[不说了，直接贴代码。。<br /><br />
<p>#ifndef PASS_REF_PTR<br />#define PASS_REF_PTR<br />#include "SharedPtr.h"</p>
<p>namespace moora_utils<br />{<br />template &lt;class _Ty&gt;<br />&nbsp;class SharedPtr;</p>
<p>template &lt;class _Ty&gt;<br />&nbsp;class PassRefPtr<br />&nbsp;{<br />&nbsp;&nbsp;_Ty* ptr_;<br />&nbsp;&nbsp;<br />&nbsp;public:<br />&nbsp;&nbsp;//use it carefully<br />&nbsp;&nbsp;_Ty* get(){return ptr_;}<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;explicit PassRefPtr(_Ty* ptr):ptr_(ptr)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;template &lt;class _Tu&gt;<br />&nbsp;&nbsp;PassRefPtr(const PassRefPtr&lt;_Tu&gt;&amp; other):ptr_(other.get())<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;template &lt;class _Tu&gt;<br />&nbsp;&nbsp;PassRefPtr(SharedPtr&lt;_Tu&gt;&amp; other);<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;template &lt;class _Tu&gt;<br />&nbsp;&nbsp;PassRefPtr&amp; operator=(PassRefPtr&lt;_Tu&gt;&amp; other)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;this-&gt;ptr_ = other.ptr_;<br />&nbsp;&nbsp;&nbsp;return *this;<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;_Ty* operator-&gt;()<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;return ptr_;<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;template &lt;class _Tu&gt;<br />&nbsp;&nbsp;PassRefPtr&amp; operator=(SharedPtr&lt;_Tu&gt;&amp; other);<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;<br />&nbsp;};<br />&nbsp;<br />template &lt;class _Ty&gt;&nbsp; template &lt;class _Tu&gt; inline<br />&nbsp;PassRefPtr&lt;_Ty&gt;::PassRefPtr(SharedPtr&lt;_Tu&gt;&amp; other):ptr_(other.get()){}</p>
<p>template &lt;class _Ty&gt;&nbsp; template &lt;class _Tu&gt; inline<br />&nbsp;PassRefPtr&lt;_Ty&gt;&amp; PassRefPtr&lt;_Ty&gt;::operator=(SharedPtr&lt;_Tu&gt;&amp; other)<br />{<br />&nbsp;ptr_ = other.get();<br />}<br />}<br />#endif<br /></p><br /><br /><br />
<p>#ifndef SHARED_PTR<br />#define SHARED_PTR<br />#include "PassRefPtr.h"<br />namespace moora_utils {</p>
<p>template &lt;class _Ty&gt;<br />&nbsp;class PassRefPtr;</p>
<p>template &lt;class _Ty&gt;<br />&nbsp;class SharedPtr<br />&nbsp;{<br />&nbsp;&nbsp;_Ty* ptr_;<br />&nbsp;&nbsp;<br />&nbsp;public:<br />&nbsp;&nbsp;//use it carefully<br />&nbsp;&nbsp;_Ty* get()<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;return ptr_;<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;explicit SharedPtr(_Ty* ptr):ptr_(ptr)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;ptr_-&gt;ref();<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;template &lt;class _Tu&gt;<br />&nbsp;&nbsp;SharedPtr(const SharedPtr&lt;_Tu&gt;&amp; other):ptr_(other.get())<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;ptr_-&gt;ref();<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;template &lt;class _Tu&gt;<br />&nbsp;&nbsp;SharedPtr(PassRefPtr&lt;_Tu&gt;&amp; other);<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;template &lt;class _Tu&gt;<br />&nbsp;&nbsp;SharedPtr&amp; operator=(SharedPtr&lt;_Tu&gt;&amp; other)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;ptr_-&gt;deref();<br />&nbsp;&nbsp;&nbsp;ptr_ = other.get();<br />&nbsp;&nbsp;&nbsp;ptr_-&gt;ref();<br />&nbsp;&nbsp;&nbsp;return *this;<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;template &lt;class _Tu&gt;<br />&nbsp;&nbsp;SharedPtr&amp; operator=(PassRefPtr&lt;_Tu&gt;&amp; other);<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;_Ty* operator-&gt;()<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;return ptr_;<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;~SharedPtr()<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;if (!ptr_-&gt;deref())<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;delete ptr_;<br />&nbsp;&nbsp;&nbsp;&nbsp;ptr_ = NULL;<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;<br />&nbsp;};<br />&nbsp;<br />template &lt;class _Ty&gt; template &lt;class _Tu&gt; inline<br />&nbsp;SharedPtr&lt;_Ty&gt;&amp; SharedPtr&lt;_Ty&gt;::operator=(PassRefPtr&lt;_Tu&gt;&amp; other)<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;ptr_ = other.get();<br />&nbsp;&nbsp;&nbsp;ptr_-&gt;ref();<br />&nbsp;&nbsp;&nbsp;return *this;<br />&nbsp;&nbsp;}<br />&nbsp;<br />template &lt;class _Ty&gt; template &lt;class _Tu&gt; inline<br />&nbsp;SharedPtr&lt;_Ty&gt;::SharedPtr(PassRefPtr&lt;_Tu&gt;&amp; other):ptr_(other.get())<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;ptr_-&gt;ref();<br />&nbsp;&nbsp;}<br />}<br />#endif</p><img src ="http://www.cppblog.com/district/aggbug/153700.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/district/" target="_blank">Hinter</a> 2011-08-18 01:00 <a href="http://www.cppblog.com/district/archive/2011/08/18/153700.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>