﻿<?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>BlogJava-西津渡日志 软件架构,saas-随笔分类-c plus plus</title><link>http://www.blogjava.net/stephen80/category/37251.html</link><description>软件架构,saas,战略管理</description><language>zh-cn</language><lastBuildDate>Sun, 28 Mar 2010 07:50:35 GMT</lastBuildDate><pubDate>Sun, 28 Mar 2010 07:50:35 GMT</pubDate><ttl>60</ttl><item><title>c++ difference from java</title><link>http://www.blogjava.net/stephen80/archive/2010/02/03/311784.html</link><dc:creator>西津渡</dc:creator><author>西津渡</author><pubDate>Wed, 03 Feb 2010 03:43:00 GMT</pubDate><guid>http://www.blogjava.net/stephen80/archive/2010/02/03/311784.html</guid><wfw:comment>http://www.blogjava.net/stephen80/comments/311784.html</wfw:comment><comments>http://www.blogjava.net/stephen80/archive/2010/02/03/311784.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/stephen80/comments/commentRss/311784.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/stephen80/services/trackbacks/311784.html</trackback:ping><description><![CDATA[c++ difference from java <br />
1. take charge of object management , negotiate ownershiop ,use scoped_ptr,<br />
&nbsp;&nbsp; not to transfer other's ownership<br />
2. use c++ template to express seperation corncern ,such as (static)polymorphy and policy<br />
3. disable copy constructor and assign operator by yourself<br />
4. polymorphy by pointer<br />
5. 使用 template ,macro 取得类似动态语言的能力<br />
6. 偏好无状态的 函数<br />
<img src ="http://www.blogjava.net/stephen80/aggbug/311784.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stephen80/" target="_blank">西津渡</a> 2010-02-03 11:43 <a href="http://www.blogjava.net/stephen80/archive/2010/02/03/311784.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>study generic programming and stl</title><link>http://www.blogjava.net/stephen80/archive/2010/01/15/309667.html</link><dc:creator>西津渡</dc:creator><author>西津渡</author><pubDate>Fri, 15 Jan 2010 04:22:00 GMT</pubDate><guid>http://www.blogjava.net/stephen80/archive/2010/01/15/309667.html</guid><wfw:comment>http://www.blogjava.net/stephen80/comments/309667.html</wfw:comment><comments>http://www.blogjava.net/stephen80/archive/2010/01/15/309667.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/stephen80/comments/commentRss/309667.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/stephen80/services/trackbacks/309667.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;只有注册用户登录后才能阅读该文。<a href='http://www.blogjava.net/stephen80/archive/2010/01/15/309667.html'>阅读全文</a><img src ="http://www.blogjava.net/stephen80/aggbug/309667.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stephen80/" target="_blank">西津渡</a> 2010-01-15 12:22 <a href="http://www.blogjava.net/stephen80/archive/2010/01/15/309667.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>current vimrc</title><link>http://www.blogjava.net/stephen80/archive/2009/10/29/300152.html</link><dc:creator>西津渡</dc:creator><author>西津渡</author><pubDate>Thu, 29 Oct 2009 03:42:00 GMT</pubDate><guid>http://www.blogjava.net/stephen80/archive/2009/10/29/300152.html</guid><wfw:comment>http://www.blogjava.net/stephen80/comments/300152.html</wfw:comment><comments>http://www.blogjava.net/stephen80/archive/2009/10/29/300152.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/stephen80/comments/commentRss/300152.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/stephen80/services/trackbacks/300152.html</trackback:ping><description><![CDATA[set nocompatible<br />
set autoindent<br />
set smartindent<br />
set ignorecase<br />
syntax enable<br />
set wrap<br />
set showmatch<br />
set foldmarker={{{,}}}<br />
set tabstop=4<br />
set shiftwidth=4<br />
set ruler<br />
set expandtab<br />
set backspace=eol,start,indent<br />
set whichwrap+=&lt;,&gt;,h,l<br />
set nobackup<br />
setlocal noswapfile<br />
set bufhidden=hide<br />
syntax on<br />
set tags=./tags,~/apsara/tags<br />
set path+=/usr/include/c++/**,~/apsara/include/**<br />
filetype plugin on<br />
filetype indent on<br />
autocmd filetype java,c,cpp setlocal textwidth=100<br />
set pastetoggle=&lt;F7&gt;<br />
<br />
nmap &lt;F2&gt;&nbsp; :set nonumber!&lt;CR&gt;<br />
nmap &lt;F8&gt;&nbsp; :TlistToggle&lt;CR&gt;<br />
imap &lt;F11&gt; &lt;C-x&gt;&lt;C-p&gt;<br />
map &lt;F12&gt;&nbsp; :!ctags -R --c++-kinds=+p --fields=+iaS --exclude=build --extra=+q .&lt;CR&gt;<br />
map &lt;F6&gt; :w&lt;CR&gt;<br />
imap &lt;F6&gt; &lt;ESC&gt;:w&lt;CR&gt;a<br />
map &lt;F3&gt; /&lt;C-R&gt;&lt;C-W&gt;&lt;CR&gt;<br />
<br />
有 c support 支持，很棒。<br />
<br />
<img src ="http://www.blogjava.net/stephen80/aggbug/300152.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stephen80/" target="_blank">西津渡</a> 2009-10-29 11:42 <a href="http://www.blogjava.net/stephen80/archive/2009/10/29/300152.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>c++ 指针 ,shared_ptr</title><link>http://www.blogjava.net/stephen80/archive/2009/10/27/299960.html</link><dc:creator>西津渡</dc:creator><author>西津渡</author><pubDate>Tue, 27 Oct 2009 10:54:00 GMT</pubDate><guid>http://www.blogjava.net/stephen80/archive/2009/10/27/299960.html</guid><wfw:comment>http://www.blogjava.net/stephen80/comments/299960.html</wfw:comment><comments>http://www.blogjava.net/stephen80/archive/2009/10/27/299960.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/stephen80/comments/commentRss/299960.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/stephen80/services/trackbacks/299960.html</trackback:ping><description><![CDATA[<ol style="margin-left: 39pt;">
    <li>
    <br />
    避免对shared_ptr所管理的对象的直接内存管理操作，以免造成该对象的重释放<br />
    shared_ptr并不能对循环引用的对象内存自动管理（这点是其它各种引用计数管理内存方式的通病）。
    </li>
    <li>
    <br />
    不要构造一个临时的shared_ptr作为函数的参数。<br />
    如下列代码则可能导致内存泄漏：<br />
    <span style="font-size: 10pt;"><span style="color: blue; font-family: Courier Std;">void</span><span style="font-family: Courier Std;"> test()<br />
    {<br />
    &nbsp;&nbsp;&nbsp;&nbsp;foo(boost::shared_ptr&lt;implementation&gt;(<span style="color: blue;">new</span>&nbsp;&nbsp;&nbsp;&nbsp;implementation()),g());<br />
    }<br />
    </span>正确的用法</span>为<span style="font-size: 10pt;">：<span style="font-family: Courier Std;"><br />
    <span style="color: blue;">void</span> test()<br />
    {<br />
    &nbsp;&nbsp;&nbsp;&nbsp;boost::shared_ptr&lt;implementation&gt; sp&nbsp;&nbsp;&nbsp;&nbsp;(<span style="color: blue;">new </span>implementation());<br />
    &nbsp;&nbsp;&nbsp;&nbsp;foo(sp,g());<br />
    }</span></span></li>
    <li>
    <p><tt>Employee boss("Morris, Melinda", 83000);</tt></p>
    <p><tt>Employee* s = &amp;boss;</tt></p>
    <p>This is usually not a good idea. As a rule of thumb, C++ pointers should
    only refer to objects allocated wth <tt>new</tt>. </p>
    </li>
</ol>
<br />
copy:http://www.diybl.com/course/3_program/c++/cppjs/20090403/163770.html
<img src ="http://www.blogjava.net/stephen80/aggbug/299960.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stephen80/" target="_blank">西津渡</a> 2009-10-27 18:54 <a href="http://www.blogjava.net/stephen80/archive/2009/10/27/299960.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>c++ 的linkage </title><link>http://www.blogjava.net/stephen80/archive/2009/10/27/299895.html</link><dc:creator>西津渡</dc:creator><author>西津渡</author><pubDate>Tue, 27 Oct 2009 03:13:00 GMT</pubDate><guid>http://www.blogjava.net/stephen80/archive/2009/10/27/299895.html</guid><wfw:comment>http://www.blogjava.net/stephen80/comments/299895.html</wfw:comment><comments>http://www.blogjava.net/stephen80/archive/2009/10/27/299895.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/stephen80/comments/commentRss/299895.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/stephen80/services/trackbacks/299895.html</trackback:ping><description><![CDATA[抄录备忘：<br />
<font face="Verdana">其实没有.h也能很好的工作,但是当你发现一个外部链接的函数或外部变量,需要许多份</font>
<p><font face="Verdana">声明,因为c++这种语言,在使用函数和变量的时候,必须将他声明,为何要声明?声明之后才</font></p>
<p><font face="Verdana">知道他的规格,才能更好的发现不和规格的部分.你别妄想一个编译单元,会自动从另一个</font></p>
<p><font face="Verdana">编译单元那里得到什么信息,知道你是如何定义这个函数的.</font></p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp; 所以说,只要使用到该函数的单元,就必须写一份声明在那个.cpp里面,这样是不是很麻烦,</font></p>
<p><font face="Verdana">而且,如果要修改,就必须一个一个修改.这真让人受不了.</font></p>
<p><font face="Verdana"><br />
.h就是为了解决这个问题而诞生,他包含了这些公共的东西.然后所有需要使用该函数的.cpp,只需要</font></p>
<p><font face="Verdana">用#include包含进去便可.以后需要修改,也只是修改一份内容.</font></p>
<p><font face="Verdana"><br />
请注意不要滥用.h,.h里面不要写代码,.h不是.cpp的仓库,什么都塞到里面.</font></p>
<p><font face="Verdana">如果在里面写代码,当其他.cpp包含他的时候,就会出现重复定义的情况,</font></p>
<p><font face="Verdana">比如将函数func(){printf}；放到头文件a.h,里面还有一些a.cpp需要的声明等；</font></p>
<p><font face="Verdana">然后你发现b.cpp需要用到a.cpp里面的一个函数,就很高兴的将a.h包含进来.</font></p>
<p><font face="Verdana">注意,#include并不是什么申请指令,他就是将指定的文件的内容,原封不动的拷贝</font></p>
<p><font face="Verdana">进来.</font></p>
<p><font face="Verdana"><br />
这时候实际上a.cpp和b.cpp都有一个func()函数的定义.</font></p>
<p><font face="Verdana">如果这个函数是内部链接static的话,还好,浪费了一倍空间；</font></p>
<p><font face="Verdana">如果是extern,外部链接(这个是默认情况),那么根据在同一个程序内不可出现</font></p>
<p><font face="Verdana">同名函数的要求,连接器会毫不留情给你一个连接错误!</font></p>
<p>http://www.cnblogs.com/shelvenn/archive/2008/02/02/1062446.html<br />
<br />
</p>
<br />
<br />
<img src ="http://www.blogjava.net/stephen80/aggbug/299895.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stephen80/" target="_blank">西津渡</a> 2009-10-27 11:13 <a href="http://www.blogjava.net/stephen80/archive/2009/10/27/299895.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>linux 安装字体</title><link>http://www.blogjava.net/stephen80/archive/2009/08/14/291185.html</link><dc:creator>西津渡</dc:creator><author>西津渡</author><pubDate>Fri, 14 Aug 2009 09:48:00 GMT</pubDate><guid>http://www.blogjava.net/stephen80/archive/2009/08/14/291185.html</guid><description><![CDATA[拷贝<br />
mingliu.ttc&nbsp; simsun.ttf&nbsp; SURSONG.TTF&nbsp; tahomabd.ttf&nbsp; tahoma.ttf&nbsp; verdanab.ttf&nbsp; verdanai.ttf&nbsp; verdana.ttf&nbsp; verdanaz.ttf<br />
<br />
&nbsp;#mv simsun.ttc /usr/share/fonts/local/simsun.ttf<br />
#cd /usr/share/fonts/local/<br />
sudo mkfontscale<br />
sudo mkfontdir<br />
<br />
sudo fc-cache<br />
cp fonts.scale fonts.dir<br />
sudo chmod 755 * <br />
sudo chkfontpath --add /usr/share/fonts/local/ <br />
<br />
#/etc/init.d/xfs restart<br />
查检是否安装成功<br />
<br />
fc-list |grep Sim<br />
<br />
&nbsp;NSimSun:style=Regular<br />
SimSun:style=Regular<br />
SimSun\-PUA:style=Regular<br />
<br />
<br />
<br />
<br />
<img src ="http://www.blogjava.net/stephen80/aggbug/291185.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stephen80/" target="_blank">西津渡</a> 2009-08-14 17:48 <a href="http://www.blogjava.net/stephen80/archive/2009/08/14/291185.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>debian, c++开发环境安装过程</title><link>http://www.blogjava.net/stephen80/archive/2009/05/19/271587.html</link><dc:creator>西津渡</dc:creator><author>西津渡</author><pubDate>Tue, 19 May 2009 12:20:00 GMT</pubDate><guid>http://www.blogjava.net/stephen80/archive/2009/05/19/271587.html</guid><wfw:comment>http://www.blogjava.net/stephen80/comments/271587.html</wfw:comment><comments>http://www.blogjava.net/stephen80/archive/2009/05/19/271587.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/stephen80/comments/commentRss/271587.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/stephen80/services/trackbacks/271587.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.blogjava.net/stephen80/archive/2009/05/19/271587.html'>阅读全文</a><img src ="http://www.blogjava.net/stephen80/aggbug/271587.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/stephen80/" target="_blank">西津渡</a> 2009-05-19 20:20 <a href="http://www.blogjava.net/stephen80/archive/2009/05/19/271587.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>