﻿<?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++博客-lynch-随笔分类-C++</title><link>http://www.cppblog.com/lynch/category/17492.html</link><description /><language>zh-cn</language><lastBuildDate>Tue, 01 Jan 2013 19:15:37 GMT</lastBuildDate><pubDate>Tue, 01 Jan 2013 19:15:37 GMT</pubDate><ttl>60</ttl><item><title>C++ UML小结</title><link>http://www.cppblog.com/lynch/archive/2012/12/21/196518.html</link><dc:creator>董三</dc:creator><author>董三</author><pubDate>Fri, 21 Dec 2012 14:09:00 GMT</pubDate><guid>http://www.cppblog.com/lynch/archive/2012/12/21/196518.html</guid><wfw:comment>http://www.cppblog.com/lynch/comments/196518.html</wfw:comment><comments>http://www.cppblog.com/lynch/archive/2012/12/21/196518.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/lynch/comments/commentRss/196518.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/lynch/services/trackbacks/196518.html</trackback:ping><description><![CDATA[<p>在UML类图中,类与类之间有几种常见关系:依赖、关联、聚合、组合、泛化。  </p><p><strong>1、依赖（Dependency）</strong></p><p><strong><br /></strong>  </p><blockquote> <p>依赖是一种很有用的关系，它用来表述一个类A&#8220;use&#8221;了另一个类B。A可以是通过任何方式&#8220;use&#8221;类B，如：</p></blockquote> <blockquote> <p><font color="#c0504d">1）A的成员函数的返回值为B；</font></p></blockquote> <blockquote> <p><font color="#c0504d">2）A的成员函数使用B作为函数参数；</font></p></blockquote> <blockquote> <p><font color="#c0504d">3）A的成员函数的内部实现使用了B；</font></p></blockquote> <blockquote> <p>依赖关系通常使用虚线箭头&#8220;----&gt;&#8221;表示，箭头指向被&#8220;use&#8221;的类。  </p><p><a href="http://www.cppblog.com/images/cppblog_com/lynch/Windows-Live-Writer/a3fe8013b5ff_13089/image_16.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" alt="image" src="http://www.cppblog.com/images/cppblog_com/lynch/Windows-Live-Writer/a3fe8013b5ff_13089/image_thumb_7.png" border="0" height="170" width="300" /></a></p></blockquote> <blockquote> <p>在C++代码中，依赖关系是这样对应的：</p><pre class="brush: cpp; auto-links: true; collapse: false; first-line: 1; gutter: true; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;">class A

{ public: B returns_a_B();

void has_a_B_argument(B);

void has_a_B_in_its_implementation();

};

A::void has_a_B_in_its_implementation(){ B b; }
</pre>
</blockquote>
<p><strong>2、关联（Association）</strong> 
</p><blockquote>
<p>关联可以表述成一个类&#8220;知道&#8221;另一个类。如何&#8220;知道&#8221;呢？在C++中，类A&#8220;知道&#8221;类B一般是通过指针实现的（也可以使用引用或者值），即类A有一个成员变量是指向B的指针（或者引用、值）。</p></blockquote>
<p>关联可以分为双向关联、单向关联、自身关联。 
</p><p>1）双向关联 
</p><blockquote>
<p>双向关联A-B：双方都&#8220;知道&#8221;对方，都可以调用对方的公共属性和方法。 
</p><p align="center"><a href="http://www.cppblog.com/images/cppblog_com/lynch/Windows-Live-Writer/a3fe8013b5ff_13089/image_14.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" alt="image" src="http://www.cppblog.com/images/cppblog_com/lynch/Windows-Live-Writer/a3fe8013b5ff_13089/image_thumb_6.png" border="0" height="128" width="524" /></a></p></blockquote>
<blockquote>
<p>对应的C++代码为：</p><pre class="brush: cpp; auto-links: true; collapse: false; first-line: 1; gutter: true; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;">class A {

public:

B* pB;

};

class B {

public:

A* pA;

};
</pre></blockquote>
<p>2）单向关联 
</p><blockquote>
<p>单向关联A-&gt;B：表示A&#8220;知道&#8221;B，A可以调用B的公共属性和方法。没有生命周期的依赖。 
</p><p align="center"><a href="http://www.cppblog.com/images/cppblog_com/lynch/Windows-Live-Writer/a3fe8013b5ff_13089/image_12.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" alt="image" src="http://www.cppblog.com/images/cppblog_com/lynch/Windows-Live-Writer/a3fe8013b5ff_13089/image_thumb_5.png" border="0" height="136" width="504" /></a></p></blockquote>
<blockquote>
<p>对应的C++代码为：</p><pre class="brush: cpp; auto-links: true; collapse: false; first-line: 1; gutter: true; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;">class A {

public:

B* pB;

};

class B {

};
</pre></blockquote>
<p>3）自身关联 
</p><blockquote>
<p>自身关联：自己引用自己，这个在链表中非常常见。</p></blockquote>
<blockquote>
<p>可以看到，上面的Object类，就是一个自身关联的应用，它有一个自己指向自己的指针，用来实现链表。 
</p><p><a href="http://www.cppblog.com/images/cppblog_com/lynch/Windows-Live-Writer/a3fe8013b5ff_13089/image_10.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" alt="image" src="http://www.cppblog.com/images/cppblog_com/lynch/Windows-Live-Writer/a3fe8013b5ff_13089/image_thumb_4.png" border="0" height="184" width="442" /></a></p></blockquote>
<blockquote>
<p>对应的C++代码为：</p><pre class="brush: cpp; auto-links: true; collapse: false; first-line: 1; gutter: true; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;">class Object {

public:

int data;

Object* next;

};

class ObjectList {

public:

Object* first;

ObjectList();

void insert(Object* obj);

void print() const;

};
</pre>
</blockquote>
<p><strong>3、聚合（Aggregation）和组合（Composition）</strong> 
</p><blockquote>
<p>聚合和组合都是用在表述整体-部分关系的时候，二者只是在生命周期问题上有差异。</p></blockquote>
<blockquote>
<p>1）聚合通常可以理解成&#8220;has a&#8221;关系。如果类A聚合类B，那么类A&#8220;has a&#8221;类B，同时，在A的生命周期结束后类B必须依然存在或者有意义。比如房间有一张桌子，那么房间和桌子的关系就是聚合：即使房间没有了，那张桌子还是存在的，桌子是可以脱离房间而存在的。 
</p><p><a href="http://www.cppblog.com/images/cppblog_com/lynch/Windows-Live-Writer/a3fe8013b5ff_13089/image_8.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" alt="image" src="http://www.cppblog.com/images/cppblog_com/lynch/Windows-Live-Writer/a3fe8013b5ff_13089/image_thumb_3.png" border="0" height="149" width="334" /></a></p></blockquote>
<blockquote>
<p>对应的C++代码：</p><pre class="brush: cpp; auto-links: true; collapse: false; first-line: 1; gutter: true; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;">class Table {

};

class Room {

public:

Table aTable;

};
</pre>
</blockquote>
<blockquote>
<p>2）组合通常可以理解为&#8220;is a part of&#8221;。和聚合不同的是，如果类A组合类B，那么当A生命周期结束后，类B也随之结束，也就是说B不能脱离类A而存在。就如同鸟都有两只翅膀一样，当鸟消失了，翅膀也随之不存在了。 
</p><p><a href="http://www.cppblog.com/images/cppblog_com/lynch/Windows-Live-Writer/a3fe8013b5ff_13089/image_6.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" alt="image" src="http://www.cppblog.com/images/cppblog_com/lynch/Windows-Live-Writer/a3fe8013b5ff_13089/image_thumb_2.png" border="0" height="141" width="336" /></a></p></blockquote>
<blockquote>
<p>对应的C++代码：</p><pre class="brush: cpp; auto-links: true; collapse: false; first-line: 1; gutter: true; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;">class Wing {

};

class Bird{

public:

Wing leftWing;

Wing rightWing;

};
</pre>
</blockquote>
<blockquote>
<p><strong><font color="#ff0000">可以发现，如果单纯从C++代码来看，聚合关系和组合关系没有什么不同，要区分聚合和组合，只能从语义分析。</font></strong></p></blockquote>
<p><font color="#ff0000"><strong>补充：</strong></font> 
</p><blockquote>
<p>组合关系还有另一层含义：&#8220;is a&#8221;。不过这种含义，仅仅用来角色方面，即&#8220;is a&#8221;角色。比如一个人，是丈夫角色。那也可以看做组合；手机可以看做&#8220;Camera&#8221;、&#8220;Music Player&#8221;等。 
</p><p><a href="http://www.cppblog.com/images/cppblog_com/lynch/Windows-Live-Writer/a3fe8013b5ff_13089/image_4.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" alt="image" src="http://www.cppblog.com/images/cppblog_com/lynch/Windows-Live-Writer/a3fe8013b5ff_13089/image_thumb_1.png" border="0" height="197" width="343" /></a></p></blockquote>
<p>
</p><blockquote>
<p>从上图我们可以看出，Battery和Smart Phone是聚合关系，因为电池是手机的一部分，但是电池可以脱离手机而存在。而IMEI Number和Smart Phone是组合关系，一般情况下一个Smart Phone只有一个IMEI Number,手机消失后，IMEI跟着消失。而我们知道现在的手机可以拍照、上网、播放音乐，因此手机可以扮演相机、web冲浪、音乐播放器的角色，所以Smart phone和Camera、Web Browser、Music Player是组合的关系。</p></blockquote>
<p><strong>4、泛化（Realization）</strong> 
</p><blockquote>
<p>泛化关系也被常用作继承（inherit）关系，是用来表述&#8220;Is-a&#8221;这种关系的，比如Car和Police-Car的关系，Police-Car &#8220;is a&#8221; Car。 
</p><p><a href="http://www.cppblog.com/images/cppblog_com/lynch/Windows-Live-Writer/a3fe8013b5ff_13089/image_2.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" alt="image" src="http://www.cppblog.com/images/cppblog_com/lynch/Windows-Live-Writer/a3fe8013b5ff_13089/image_thumb.png" border="0" height="204" width="244" /></a></p></blockquote>
<blockquote>
<p>对应的C++代码为：</p><pre class="brush: cpp; auto-links: true; collapse: false; first-line: 1; gutter: true; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;">class Car {

};

class Police_Car{

};
</pre></blockquote><img src ="http://www.cppblog.com/lynch/aggbug/196518.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/lynch/" target="_blank">董三</a> 2012-12-21 22:09 <a href="http://www.cppblog.com/lynch/archive/2012/12/21/196518.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>让C++支持interface</title><link>http://www.cppblog.com/lynch/archive/2012/12/14/196250.html</link><dc:creator>董三</dc:creator><author>董三</author><pubDate>Fri, 14 Dec 2012 06:21:00 GMT</pubDate><guid>http://www.cppblog.com/lynch/archive/2012/12/14/196250.html</guid><wfw:comment>http://www.cppblog.com/lynch/comments/196250.html</wfw:comment><comments>http://www.cppblog.com/lynch/archive/2012/12/14/196250.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/lynch/comments/commentRss/196250.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/lynch/services/trackbacks/196250.html</trackback:ping><description><![CDATA[<em style="word-wrap: break-word; font-family: Simsun; line-height: 18.200000762939453px;">&nbsp; &nbsp; 在正题的展开前，我们先来看一段C++代码：</em><br style="word-wrap: break-word; font-family: Simsun; line-height: 18.200000762939453px;" /><div id="codeText" style="word-wrap: break-word; border: 1px solid #dddddd; width: 645.816650390625px; overflow: auto; margin: 0px 0px 1.1em; word-break: break-all; background-color: #ffffff; font-size: 12px; line-height: normal; font-family: Consolas, monospace;"><ol start="1" style="word-wrap: break-word; margin: 0px 1px 0px 0px; color: #5c5c5c; line-height: 1.3; padding-left: 40px;"><li style="word-wrap: break-word; padding-left: 10px;"><span style="word-wrap: break-word; color: #0000ff;">class</span>&nbsp;IX&nbsp;<span style="word-wrap: break-word; color: #0000cc;">{</span><br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;"><span style="word-wrap: break-word; color: #0000cc;">&nbsp; public:</span></li><li style="word-wrap: break-word; padding-left: 10px;">&nbsp;&nbsp;&nbsp;&nbsp;virtual void Fx1<span style="word-wrap: break-word; color: #0000cc;">(</span><span style="word-wrap: break-word; color: #0000cc;">)</span>&nbsp;<span style="word-wrap: break-word; color: #0000cc;">=</span>&nbsp;0<span style="word-wrap: break-word; color: #0000cc;">;</span><br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;">&nbsp;&nbsp;&nbsp;&nbsp;virtual void Fx2<span style="word-wrap: break-word; color: #0000cc;">(</span><span style="word-wrap: break-word; color: #0000cc;">)</span>&nbsp;<span style="word-wrap: break-word; color: #0000cc;">=</span>&nbsp;0<span style="word-wrap: break-word; color: #0000cc;">;</span><br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;"><span style="word-wrap: break-word; color: #0000cc;">}</span><span style="word-wrap: break-word; color: #0000cc;">;</span></li></ol></div><span style="font-family: Simsun; line-height: 18.200000762939453px;">&nbsp; &nbsp; 这是一段简单的接口声明代码：IX是用于实现接口的纯抽象基类。纯抽象基类指的是仅包括纯虚函数的基类。纯虚函数是指用=0标记的虚函数，我们往往把=0称作纯虚函数指示符。</span><div style="word-wrap: break-word; font-family: Simsun; line-height: 18.200000762939453px;">&nbsp; &nbsp; 虚基类是不能实例化的，换句话说，虚基类只是提供一个interface的功能，它并不实现这些纯虚函数。这让我们想起C#/Java语言里面的interface关键字，interface和class不同，interface仅有接口声明，而且所有的声明默认的访问权限是public而非private，这让我们可以用C++的struct来模拟interface，因为struct默认的访问权限也是public。</div><div style="word-wrap: break-word; font-family: Simsun; line-height: 18.200000762939453px;">&nbsp; &nbsp; 让我们简单的加一个约定：</div><div id="codeText" style="word-wrap: break-word; border: 1px solid #dddddd; width: 645.816650390625px; overflow: auto; margin: 0px 0px 1.1em; word-break: break-all; background-color: #ffffff; font-size: 12px; line-height: normal; font-family: Consolas, monospace;"><ol start="1" style="word-wrap: break-word; margin: 0px 1px 0px 0px; color: #5c5c5c; line-height: 1.3; padding-left: 40px;"><li style="word-wrap: break-word; padding-left: 10px;">#define interface struct</li></ol></div><span style="font-family: Simsun; line-height: 18.200000762939453px;">&nbsp; &nbsp; 使用struct的原因在于struct的成员将自动具有公有的属性，因此不需要另外在定义加上public关键字。去掉public关键字可以减少一些混乱。根据这个约定，我们开始的代码可以重新定义如下：</span><br style="word-wrap: break-word; font-family: Simsun; line-height: 18.200000762939453px;" /><div id="codeText" style="word-wrap: break-word; border: 1px solid #dddddd; width: 645.816650390625px; overflow: auto; margin: 0px 0px 1.1em; word-break: break-all; background-color: #ffffff; font-size: 12px; line-height: normal; font-family: Consolas, monospace;"><ol start="1" style="word-wrap: break-word; margin: 0px 1px 0px 0px; color: #5c5c5c; line-height: 1.3; padding-left: 40px;"><li style="word-wrap: break-word; padding-left: 10px;">interface IX&nbsp;<span style="word-wrap: break-word; color: #0000cc;">{</span><br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;">&nbsp;&nbsp;&nbsp;&nbsp;virtual void Fx1<span style="word-wrap: break-word; color: #0000cc;">(</span><span style="word-wrap: break-word; color: #0000cc;">)</span>&nbsp;<span style="word-wrap: break-word; color: #0000cc;">=</span>&nbsp;0<span style="word-wrap: break-word; color: #0000cc;">;</span><br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;">&nbsp;&nbsp;&nbsp;&nbsp;virtual void Fx2<span style="word-wrap: break-word; color: #0000cc;">(</span><span style="word-wrap: break-word; color: #0000cc;">)</span>&nbsp;<span style="word-wrap: break-word; color: #0000cc;">=</span>&nbsp;0<span style="word-wrap: break-word; color: #0000cc;">;</span><br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;"><span style="word-wrap: break-word; color: #0000cc;">}</span><span style="word-wrap: break-word; color: #0000cc;">;</span></li></ol></div><span style="font-family: Simsun; line-height: 18.200000762939453px;">&nbsp; &nbsp;可以看到，少了public，减少了混乱。同时interface可以透露出，这不是一个普通的class，而是一个接口。</span><div style="word-wrap: break-word; font-family: Simsun; line-height: 18.200000762939453px;"></div><div style="word-wrap: break-word; font-family: Simsun; line-height: 18.200000762939453px;">&nbsp; &nbsp;下面我们模拟一个有两个接口的组件component的简单访问</div><br style="word-wrap: break-word; font-family: Simsun; line-height: 18.200000762939453px;" /><div id="codeText" style="word-wrap: break-word; border: 1px solid #dddddd; width: 645.816650390625px; overflow: auto; margin: 0px 0px 1.1em; word-break: break-all; background-color: #ffffff; font-size: 12px; line-height: normal; font-family: Consolas, monospace;"><ol start="1" style="word-wrap: break-word; margin: 0px 1px 0px 0px; color: #5c5c5c; line-height: 1.3; padding-left: 40px;"><li style="word-wrap: break-word; padding-left: 10px;"><span style="word-wrap: break-word; color: #0000cc;">/</span><span style="word-wrap: break-word; color: #0000cc;">/</span>Filename<span style="word-wrap: break-word; color: #0000cc;">:</span>&nbsp;base<span style="word-wrap: break-word; color: #0000cc;">.</span>hpp<br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;">#define interface struct</li></ol></div><br style="word-wrap: break-word; font-family: Simsun; line-height: 18.200000762939453px;" /><div id="codeText" style="word-wrap: break-word; border: 1px solid #dddddd; width: 645.816650390625px; overflow: auto; margin: 0px 0px 1.1em; word-break: break-all; background-color: #ffffff; font-size: 12px; line-height: normal; font-family: Consolas, monospace;"><ol start="1" style="word-wrap: break-word; margin: 0px 1px 0px 0px; color: #5c5c5c; line-height: 1.3; padding-left: 40px;"><li style="word-wrap: break-word; padding-left: 10px;"><span style="word-wrap: break-word; color: #0000cc;">/</span><span style="word-wrap: break-word; color: #0000cc;">/</span>Filename<span style="word-wrap: break-word; color: #0000cc;">:</span>&nbsp;IFace<span style="word-wrap: break-word; color: #0000cc;">.</span>cpp<br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;">#include<span style="word-wrap: break-word; color: #0000cc;">&lt;</span>iostream<span style="word-wrap: break-word; color: #0000cc;">&gt;</span><br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;">#include<span style="word-wrap: break-word; color: #ff00ff;">"base.hpp"</span><br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;"><span style="word-wrap: break-word; color: #ff00ff;"><br style="word-wrap: break-word;" /></span></li><li style="word-wrap: break-word; padding-left: 10px;">//在linux终端以红色打印pMsg字符串</li><li style="word-wrap: break-word; padding-left: 10px;">void trace<span style="word-wrap: break-word; color: #0000cc;">(</span><span style="word-wrap: break-word; color: #0000ff;">const</span>&nbsp;char<span style="word-wrap: break-word; color: #0000cc;">*</span>&nbsp;pMsg<span style="word-wrap: break-word; color: #0000cc;">)</span>&nbsp;<span style="word-wrap: break-word; color: #0000cc;">{</span>&nbsp;std<span style="word-wrap: break-word; color: #0000cc;">:</span><span style="word-wrap: break-word; color: #0000cc;">:</span>cout<span style="word-wrap: break-word; color: #0000cc;">&lt;</span><span style="word-wrap: break-word; color: #0000cc;">&lt;</span><span style="word-wrap: break-word; color: #ff00ff;">"\033[0;31m"</span><span style="word-wrap: break-word; color: #0000cc;">&lt;</span><span style="word-wrap: break-word; color: #0000cc;">&lt;</span>&nbsp;pMsg&nbsp;<span style="word-wrap: break-word; color: #0000cc;">&lt;</span><span style="word-wrap: break-word; color: #0000cc;">&lt;</span><span style="word-wrap: break-word; color: #ff00ff;">"\033[0m"</span><span style="word-wrap: break-word; color: #0000cc;">&lt;</span><span style="word-wrap: break-word; color: #0000cc;">&lt;</span>std<span style="word-wrap: break-word; color: #0000cc;">:</span><span style="word-wrap: break-word; color: #0000cc;">:</span>endl<span style="word-wrap: break-word; color: #0000cc;">;</span>&nbsp;<span style="word-wrap: break-word; color: #0000cc;">}</span><br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;"><br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;"><span style="word-wrap: break-word; color: #0000cc;">/</span><span style="word-wrap: break-word; color: #0000cc;">/</span>&nbsp;Abstract Interfaces<br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;">interface IX&nbsp;<span style="word-wrap: break-word; color: #0000cc;">{</span><br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;">&nbsp;&nbsp;&nbsp;&nbsp;virtual void Fx1<span style="word-wrap: break-word; color: #0000cc;">(</span><span style="word-wrap: break-word; color: #0000cc;">)</span>&nbsp;<span style="word-wrap: break-word; color: #0000cc;">=</span>&nbsp;0<span style="word-wrap: break-word; color: #0000cc;">;</span><br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;">&nbsp;&nbsp;&nbsp;&nbsp;virtual void Fx2<span style="word-wrap: break-word; color: #0000cc;">(</span><span style="word-wrap: break-word; color: #0000cc;">)</span>&nbsp;<span style="word-wrap: break-word; color: #0000cc;">=</span>&nbsp;0<span style="word-wrap: break-word; color: #0000cc;">;</span><br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;"><span style="word-wrap: break-word; color: #0000cc;">}</span><span style="word-wrap: break-word; color: #0000cc;">;</span><br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;"><br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;">interface IY&nbsp;<span style="word-wrap: break-word; color: #0000cc;">{</span><br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;">&nbsp;&nbsp;&nbsp;&nbsp;virtual void Fy1<span style="word-wrap: break-word; color: #0000cc;">(</span><span style="word-wrap: break-word; color: #0000cc;">)</span>&nbsp;<span style="word-wrap: break-word; color: #0000cc;">=</span>&nbsp;0<span style="word-wrap: break-word; color: #0000cc;">;</span><br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;">&nbsp;&nbsp;&nbsp;&nbsp;virtual void Fy2<span style="word-wrap: break-word; color: #0000cc;">(</span><span style="word-wrap: break-word; color: #0000cc;">)</span>&nbsp;<span style="word-wrap: break-word; color: #0000cc;">=</span>&nbsp;0<span style="word-wrap: break-word; color: #0000cc;">;</span><br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;"><span style="word-wrap: break-word; color: #0000cc;">}</span><span style="word-wrap: break-word; color: #0000cc;">;</span><br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;"><br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;"><span style="word-wrap: break-word; color: #0000cc;">/</span><span style="word-wrap: break-word; color: #0000cc;">/</span>&nbsp;Interface implementation<br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;"><span style="word-wrap: break-word; color: #0000ff;">class</span>&nbsp;CA&nbsp;<span style="word-wrap: break-word; color: #0000cc;">:</span>&nbsp;<span style="word-wrap: break-word; color: #0000ff;">public</span>&nbsp;IX<span style="word-wrap: break-word; color: #0000cc;">,</span><span style="word-wrap: break-word; color: #0000ff;">public</span>&nbsp;IY&nbsp;<span style="word-wrap: break-word; color: #0000cc;">{</span><br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;">&nbsp;&nbsp;&nbsp;&nbsp;<span style="word-wrap: break-word; color: #0000ff;">public</span><span style="word-wrap: break-word; color: #0000cc;">:</span><br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="word-wrap: break-word; color: #0000cc;">/</span><span style="word-wrap: break-word; color: #0000cc;">/</span>&nbsp;Implement interface IX<span style="word-wrap: break-word; color: #0000cc;">.</span><br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;virtual void Fx1<span style="word-wrap: break-word; color: #0000cc;">(</span><span style="word-wrap: break-word; color: #0000cc;">)</span>&nbsp;<span style="word-wrap: break-word; color: #0000cc;">{</span>&nbsp;std<span style="word-wrap: break-word; color: #0000cc;">:</span><span style="word-wrap: break-word; color: #0000cc;">:</span>cout<span style="word-wrap: break-word; color: #0000cc;">&lt;</span><span style="word-wrap: break-word; color: #0000cc;">&lt;</span>&nbsp;<span style="word-wrap: break-word; color: #ff00ff;">"CA::Fx1"</span>&nbsp;<span style="word-wrap: break-word; color: #0000cc;">&lt;</span><span style="word-wrap: break-word; color: #0000cc;">&lt;</span>std<span style="word-wrap: break-word; color: #0000cc;">:</span><span style="word-wrap: break-word; color: #0000cc;">:</span>endl<span style="word-wrap: break-word; color: #0000cc;">;</span>&nbsp;<span style="word-wrap: break-word; color: #0000cc;">}</span><br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;virtual void Fx2<span style="word-wrap: break-word; color: #0000cc;">(</span><span style="word-wrap: break-word; color: #0000cc;">)</span>&nbsp;<span style="word-wrap: break-word; color: #0000cc;">{</span>&nbsp;std<span style="word-wrap: break-word; color: #0000cc;">:</span><span style="word-wrap: break-word; color: #0000cc;">:</span>cout<span style="word-wrap: break-word; color: #0000cc;">&lt;</span><span style="word-wrap: break-word; color: #0000cc;">&lt;</span>&nbsp;<span style="word-wrap: break-word; color: #ff00ff;">"CA::Fx2"</span>&nbsp;<span style="word-wrap: break-word; color: #0000cc;">&lt;</span><span style="word-wrap: break-word; color: #0000cc;">&lt;</span>std<span style="word-wrap: break-word; color: #0000cc;">:</span><span style="word-wrap: break-word; color: #0000cc;">:</span>endl<span style="word-wrap: break-word; color: #0000cc;">;</span>&nbsp;<span style="word-wrap: break-word; color: #0000cc;">}</span><br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="word-wrap: break-word; color: #0000cc;">/</span><span style="word-wrap: break-word; color: #0000cc;">/</span>Implement interface IY<span style="word-wrap: break-word; color: #0000cc;">.</span><br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;virtual void Fy1<span style="word-wrap: break-word; color: #0000cc;">(</span><span style="word-wrap: break-word; color: #0000cc;">)</span>&nbsp;<span style="word-wrap: break-word; color: #0000cc;">{</span>&nbsp;std<span style="word-wrap: break-word; color: #0000cc;">:</span><span style="word-wrap: break-word; color: #0000cc;">:</span>cout<span style="word-wrap: break-word; color: #0000cc;">&lt;</span><span style="word-wrap: break-word; color: #0000cc;">&lt;</span>&nbsp;<span style="word-wrap: break-word; color: #ff00ff;">"CA::Fy1"</span>&nbsp;<span style="word-wrap: break-word; color: #0000cc;">&lt;</span><span style="word-wrap: break-word; color: #0000cc;">&lt;</span>std<span style="word-wrap: break-word; color: #0000cc;">:</span><span style="word-wrap: break-word; color: #0000cc;">:</span>endl<span style="word-wrap: break-word; color: #0000cc;">;</span>&nbsp;<span style="word-wrap: break-word; color: #0000cc;">}</span><br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;virtual void Fy2<span style="word-wrap: break-word; color: #0000cc;">(</span><span style="word-wrap: break-word; color: #0000cc;">)</span>&nbsp;<span style="word-wrap: break-word; color: #0000cc;">{</span>&nbsp;std<span style="word-wrap: break-word; color: #0000cc;">:</span><span style="word-wrap: break-word; color: #0000cc;">:</span>cout<span style="word-wrap: break-word; color: #0000cc;">&lt;</span><span style="word-wrap: break-word; color: #0000cc;">&lt;</span>&nbsp;<span style="word-wrap: break-word; color: #ff00ff;">"CA::Fy2"</span>&nbsp;<span style="word-wrap: break-word; color: #0000cc;">&lt;</span><span style="word-wrap: break-word; color: #0000cc;">&lt;</span>std<span style="word-wrap: break-word; color: #0000cc;">:</span><span style="word-wrap: break-word; color: #0000cc;">:</span>endl<span style="word-wrap: break-word; color: #0000cc;">;</span>&nbsp;<span style="word-wrap: break-word; color: #0000cc;">}</span><br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;"><span style="word-wrap: break-word; color: #0000cc;">}</span><span style="word-wrap: break-word; color: #0000cc;">;</span><br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;"><br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;"><span style="word-wrap: break-word; color: #0000cc;">/</span><span style="word-wrap: break-word; color: #0000cc;">/</span>client<br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;"><span style="word-wrap: break-word; color: #ff0000;">int</span>&nbsp;main<span style="word-wrap: break-word; color: #0000cc;">(</span><span style="word-wrap: break-word; color: #0000cc;">)</span>&nbsp;<span style="word-wrap: break-word; color: #0000cc;">{</span><br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;">&nbsp;&nbsp;&nbsp;&nbsp;trace<span style="word-wrap: break-word; color: #0000cc;">(</span><span style="word-wrap: break-word; color: #ff00ff;">"Client:Create an instance of the component."</span><span style="word-wrap: break-word; color: #0000cc;">)</span><span style="word-wrap: break-word; color: #0000cc;">;</span><br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;">&nbsp;&nbsp;&nbsp;&nbsp;CA&nbsp;<span style="word-wrap: break-word; color: #0000cc;">*</span>pA&nbsp;<span style="word-wrap: break-word; color: #0000cc;">=</span>&nbsp;new CA<span style="word-wrap: break-word; color: #0000cc;">;</span><br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;">&nbsp;&nbsp;&nbsp;&nbsp;<span style="word-wrap: break-word; color: #0000cc;">/</span><span style="word-wrap: break-word; color: #0000cc;">/</span><span style="word-wrap: break-word; color: #0000ff;">Get</span>&nbsp;an IX pointer<br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;">&nbsp;&nbsp;&nbsp;&nbsp;IX<span style="word-wrap: break-word; color: #0000cc;">*</span>&nbsp;pIX&nbsp;<span style="word-wrap: break-word; color: #0000cc;">=</span>&nbsp;pA<span style="word-wrap: break-word; color: #0000cc;">;</span><br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;">&nbsp;&nbsp;&nbsp;&nbsp;trace<span style="word-wrap: break-word; color: #0000cc;">(</span><span style="word-wrap: break-word; color: #ff00ff;">"Client: Use the IX interface."</span><span style="word-wrap: break-word; color: #0000cc;">)</span><span style="word-wrap: break-word; color: #0000cc;">;</span><br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;">&nbsp;&nbsp;&nbsp;&nbsp;pIX<span style="word-wrap: break-word; color: #0000cc;">-</span><span style="word-wrap: break-word; color: #0000cc;">&gt;</span>Fx1<span style="word-wrap: break-word; color: #0000cc;">(</span><span style="word-wrap: break-word; color: #0000cc;">)</span><span style="word-wrap: break-word; color: #0000cc;">;</span><br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;">&nbsp;&nbsp;&nbsp;&nbsp;pIX<span style="word-wrap: break-word; color: #0000cc;">-</span><span style="word-wrap: break-word; color: #0000cc;">&gt;</span>Fx2<span style="word-wrap: break-word; color: #0000cc;">(</span><span style="word-wrap: break-word; color: #0000cc;">)</span><span style="word-wrap: break-word; color: #0000cc;">;</span><br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;">&nbsp;&nbsp;&nbsp;&nbsp;<span style="word-wrap: break-word; color: #0000cc;">/</span><span style="word-wrap: break-word; color: #0000cc;">/</span><span style="word-wrap: break-word; color: #0000ff;">Get</span>&nbsp;an IY pointer<br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;">&nbsp;&nbsp;&nbsp;&nbsp;IY<span style="word-wrap: break-word; color: #0000cc;">*</span>&nbsp;pIY&nbsp;<span style="word-wrap: break-word; color: #0000cc;">=</span>&nbsp;pA<span style="word-wrap: break-word; color: #0000cc;">;</span><br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;">&nbsp;&nbsp;&nbsp;&nbsp;trace<span style="word-wrap: break-word; color: #0000cc;">(</span><span style="word-wrap: break-word; color: #ff00ff;">"Client: Use the IY interface."</span><span style="word-wrap: break-word; color: #0000cc;">)</span><span style="word-wrap: break-word; color: #0000cc;">;</span><br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;">&nbsp;&nbsp;&nbsp;&nbsp;pIY<span style="word-wrap: break-word; color: #0000cc;">-</span><span style="word-wrap: break-word; color: #0000cc;">&gt;</span>Fy1<span style="word-wrap: break-word; color: #0000cc;">(</span><span style="word-wrap: break-word; color: #0000cc;">)</span><span style="word-wrap: break-word; color: #0000cc;">;</span><br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;">&nbsp;&nbsp;&nbsp;&nbsp;pIY<span style="word-wrap: break-word; color: #0000cc;">-</span><span style="word-wrap: break-word; color: #0000cc;">&gt;</span>Fy2<span style="word-wrap: break-word; color: #0000cc;">(</span><span style="word-wrap: break-word; color: #0000cc;">)</span><span style="word-wrap: break-word; color: #0000cc;">;</span><br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;">&nbsp;&nbsp;&nbsp;&nbsp;trace<span style="word-wrap: break-word; color: #0000cc;">(</span><span style="word-wrap: break-word; color: #ff00ff;">"Client: Delete the component."</span><span style="word-wrap: break-word; color: #0000cc;">)</span><span style="word-wrap: break-word; color: #0000cc;">;</span><br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;">&nbsp;&nbsp;&nbsp;&nbsp;<br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;">&nbsp;&nbsp;&nbsp;&nbsp;return 0<span style="word-wrap: break-word; color: #0000cc;">;</span><br style="word-wrap: break-word;" /></li><li style="word-wrap: break-word; padding-left: 10px;"><span style="word-wrap: break-word; color: #0000cc;">}</span></li></ol></div><span style="font-family: Simsun; line-height: 18.200000762939453px;">&nbsp; &nbsp; &nbsp;程序运行结果：</span><p>&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;<img src="http://www.cppblog.com/images/cppblog_com/lynch/1.jpg" border="0" alt="" width="428" height="169" /></p><div style="word-wrap: break-word; font-family: Simsun; line-height: 18.200000762939453px;">&nbsp; &nbsp; &nbsp; &nbsp;<img src="file:///C:\Users\Dariuskylin\AppData\Roaming\Tencent\Users\876670110\QQ\WinTemp\RichOle\SJN}RZGTJ$DH3SFK@@(2`TO.jpg" alt="" /><p>&nbsp;</p></div><div><div> <img src="file:///C:\Users\Dariuskylin\AppData\Roaming\Tencent\Users\876670110\QQ\WinTemp\RichOle\SJN}RZGTJ$DH3SFK@@(2`TO.jpg" alt="" /></div></div><img src ="http://www.cppblog.com/lynch/aggbug/196250.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/lynch/" target="_blank">董三</a> 2012-12-14 14:21 <a href="http://www.cppblog.com/lynch/archive/2012/12/14/196250.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C++  libxml2编程基础(Ubuntu系统)</title><link>http://www.cppblog.com/lynch/archive/2012/12/14/196249.html</link><dc:creator>董三</dc:creator><author>董三</author><pubDate>Fri, 14 Dec 2012 06:08:00 GMT</pubDate><guid>http://www.cppblog.com/lynch/archive/2012/12/14/196249.html</guid><wfw:comment>http://www.cppblog.com/lynch/comments/196249.html</wfw:comment><comments>http://www.cppblog.com/lynch/archive/2012/12/14/196249.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/lynch/comments/commentRss/196249.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/lynch/services/trackbacks/196249.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp; &nbsp; Libxml2 是一个xml c语言版的解析器，本来是为Gnome项目开发的工具，是一个基于MIT License的免费开源软件。它除了支持c语言版以外，还支持c++、PHP、Pascal、Ruby、Tcl等语言的绑定，能在Windows、Linux、Solaris、MacOsX等平台上运行。功能还是相当强大的，相信满足一般用户需求没有任何问题。&nbsp; &nbsp...&nbsp;&nbsp;<a href='http://www.cppblog.com/lynch/archive/2012/12/14/196249.html'>阅读全文</a><img src ="http://www.cppblog.com/lynch/aggbug/196249.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/lynch/" target="_blank">董三</a> 2012-12-14 14:08 <a href="http://www.cppblog.com/lynch/archive/2012/12/14/196249.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>streamstring 格式转换</title><link>http://www.cppblog.com/lynch/archive/2011/10/02/157347.html</link><dc:creator>董三</dc:creator><author>董三</author><pubDate>Sun, 02 Oct 2011 05:48:00 GMT</pubDate><guid>http://www.cppblog.com/lynch/archive/2011/10/02/157347.html</guid><wfw:comment>http://www.cppblog.com/lynch/comments/157347.html</wfw:comment><comments>http://www.cppblog.com/lynch/archive/2011/10/02/157347.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/lynch/comments/commentRss/157347.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/lynch/services/trackbacks/157347.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.cppblog.com/lynch/archive/2011/10/02/157347.html'>阅读全文</a><img src ="http://www.cppblog.com/lynch/aggbug/157347.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/lynch/" target="_blank">董三</a> 2011-10-02 13:48 <a href="http://www.cppblog.com/lynch/archive/2011/10/02/157347.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【转】bzero &amp; memset置零的性能比较 </title><link>http://www.cppblog.com/lynch/archive/2011/08/05/152521.html</link><dc:creator>董三</dc:creator><author>董三</author><pubDate>Fri, 05 Aug 2011 02:57:00 GMT</pubDate><guid>http://www.cppblog.com/lynch/archive/2011/08/05/152521.html</guid><wfw:comment>http://www.cppblog.com/lynch/comments/152521.html</wfw:comment><comments>http://www.cppblog.com/lynch/archive/2011/08/05/152521.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/lynch/comments/commentRss/152521.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/lynch/services/trackbacks/152521.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.cppblog.com/lynch/archive/2011/08/05/152521.html'>阅读全文</a><img src ="http://www.cppblog.com/lynch/aggbug/152521.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/lynch/" target="_blank">董三</a> 2011-08-05 10:57 <a href="http://www.cppblog.com/lynch/archive/2011/08/05/152521.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>struct timeval和gettimeofday（）</title><link>http://www.cppblog.com/lynch/archive/2011/08/05/152520.html</link><dc:creator>董三</dc:creator><author>董三</author><pubDate>Fri, 05 Aug 2011 02:50:00 GMT</pubDate><guid>http://www.cppblog.com/lynch/archive/2011/08/05/152520.html</guid><wfw:comment>http://www.cppblog.com/lynch/comments/152520.html</wfw:comment><comments>http://www.cppblog.com/lynch/archive/2011/08/05/152520.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/lynch/comments/commentRss/152520.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/lynch/services/trackbacks/152520.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.cppblog.com/lynch/archive/2011/08/05/152520.html'>阅读全文</a><img src ="http://www.cppblog.com/lynch/aggbug/152520.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/lynch/" target="_blank">董三</a> 2011-08-05 10:50 <a href="http://www.cppblog.com/lynch/archive/2011/08/05/152520.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>学习BOOST的好资料</title><link>http://www.cppblog.com/lynch/archive/2011/07/29/152052.html</link><dc:creator>董三</dc:creator><author>董三</author><pubDate>Fri, 29 Jul 2011 08:37:00 GMT</pubDate><guid>http://www.cppblog.com/lynch/archive/2011/07/29/152052.html</guid><wfw:comment>http://www.cppblog.com/lynch/comments/152052.html</wfw:comment><comments>http://www.cppblog.com/lynch/archive/2011/07/29/152052.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/lynch/comments/commentRss/152052.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/lynch/services/trackbacks/152052.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;<a href='http://www.cppblog.com/lynch/archive/2011/07/29/152052.html'>阅读全文</a><img src ="http://www.cppblog.com/lynch/aggbug/152052.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/lynch/" target="_blank">董三</a> 2011-07-29 16:37 <a href="http://www.cppblog.com/lynch/archive/2011/07/29/152052.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>