﻿<?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++博客-super-</title><link>http://www.cppblog.com/super-/</link><description /><language>zh-cn</language><lastBuildDate>Tue, 14 Apr 2026 23:06:14 GMT</lastBuildDate><pubDate>Tue, 14 Apr 2026 23:06:14 GMT</pubDate><ttl>60</ttl><item><title>c++内存池</title><link>http://www.cppblog.com/super-/archive/2009/07/13/89923.html</link><dc:creator>Super-</dc:creator><author>Super-</author><pubDate>Mon, 13 Jul 2009 02:48:00 GMT</pubDate><guid>http://www.cppblog.com/super-/archive/2009/07/13/89923.html</guid><wfw:comment>http://www.cppblog.com/super-/comments/89923.html</wfw:comment><comments>http://www.cppblog.com/super-/archive/2009/07/13/89923.html#Feedback</comments><slash:comments>6</slash:comments><wfw:commentRss>http://www.cppblog.com/super-/comments/commentRss/89923.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/super-/services/trackbacks/89923.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;1#ifndef&nbsp;__MEMPOOL_H__&nbsp;2#define&nbsp;__MEMPOOL_H__&nbsp;3#include&nbsp;"stdio.h"&nbsp;4#include&nbsp;"stdlib.h"&nbsp;5#include&nbsp;&lt;string.h&gt;&nbsp;6&nbsp;7class&nbsp;CMe...&nbsp;&nbsp;<a href='http://www.cppblog.com/super-/archive/2009/07/13/89923.html'>阅读全文</a><img src ="http://www.cppblog.com/super-/aggbug/89923.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/super-/" target="_blank">Super-</a> 2009-07-13 10:48 <a href="http://www.cppblog.com/super-/archive/2009/07/13/89923.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>shell 定时启动程序</title><link>http://www.cppblog.com/super-/archive/2009/07/06/89350.html</link><dc:creator>Super-</dc:creator><author>Super-</author><pubDate>Mon, 06 Jul 2009 03:34:00 GMT</pubDate><guid>http://www.cppblog.com/super-/archive/2009/07/06/89350.html</guid><wfw:comment>http://www.cppblog.com/super-/comments/89350.html</wfw:comment><comments>http://www.cppblog.com/super-/archive/2009/07/06/89350.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/super-/comments/commentRss/89350.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/super-/services/trackbacks/89350.html</trackback:ping><description><![CDATA[#!/bin/sh<br>if [ $# -lt 1 ]<br>then<br>&nbsp;echo -e "Please Input&nbsp;$1 parameter!\n"<br>else<br>&nbsp;while(true)<br>&nbsp;do<br>&nbsp;&nbsp;PID=`ps -ef|grep "$1"|grep -v "grep"|awk '{print $1}'`<br>&nbsp;&nbsp;tmp=${PID:-"aaaa"}<br>&nbsp;&nbsp;if [ tmp != "aaaa" ]<br>&nbsp;&nbsp;then<br>&nbsp;&nbsp;&nbsp;$1 $2<br>&nbsp;&nbsp;else<br>&nbsp;&nbsp;&nbsp;echo -e "Current PID is $PID\n"<br>&nbsp;&nbsp;&nbsp;sleep(10)<br>&nbsp;&nbsp;fi<br>&nbsp;done<br>fi<br><br><br>
<img src ="http://www.cppblog.com/super-/aggbug/89350.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/super-/" target="_blank">Super-</a> 2009-07-06 11:34 <a href="http://www.cppblog.com/super-/archive/2009/07/06/89350.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>linux 后台执行</title><link>http://www.cppblog.com/super-/archive/2009/06/22/88305.html</link><dc:creator>Super-</dc:creator><author>Super-</author><pubDate>Mon, 22 Jun 2009 09:59:00 GMT</pubDate><guid>http://www.cppblog.com/super-/archive/2009/06/22/88305.html</guid><wfw:comment>http://www.cppblog.com/super-/comments/88305.html</wfw:comment><comments>http://www.cppblog.com/super-/archive/2009/06/22/88305.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/super-/comments/commentRss/88305.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/super-/services/trackbacks/88305.html</trackback:ping><description><![CDATA[<p><br>#!/bin/sh<br>PATH=$PATH:./<br>if [ $# -lt 2 ]<br>then<br>&nbsp;&nbsp; echo -e "Please Execute `basename $0` parameter!\n"<br>fi</p>
<p>if [ -n $2 ]<br>then<br>&nbsp;&nbsp; nohup "$1" &gt; "$2" 2&gt;&amp;1 &amp;<br>fi</p>
<img src ="http://www.cppblog.com/super-/aggbug/88305.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/super-/" target="_blank">Super-</a> 2009-06-22 17:59 <a href="http://www.cppblog.com/super-/archive/2009/06/22/88305.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>linux 创建进程</title><link>http://www.cppblog.com/super-/archive/2009/06/19/88096.html</link><dc:creator>Super-</dc:creator><author>Super-</author><pubDate>Fri, 19 Jun 2009 06:29:00 GMT</pubDate><guid>http://www.cppblog.com/super-/archive/2009/06/19/88096.html</guid><wfw:comment>http://www.cppblog.com/super-/comments/88096.html</wfw:comment><comments>http://www.cppblog.com/super-/archive/2009/06/19/88096.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/super-/comments/commentRss/88096.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/super-/services/trackbacks/88096.html</trackback:ping><description><![CDATA[<p>linux中创建进程的方法有fork和exec；<br>其中fork时，通过复制调用进程来创建新的进程；<br>exec则是用一个新的程序覆盖原进程的内存空间，来实现进程的转变，<br>如果系统调用了exec，并且成功，就不会有任何数据返回，如果失败，<br>则会返回数据，可以通过检查errno来获取错误码，或strerror或perror的方式<br>打印错误信息；</p>
<p>fork：<br>如果返回值为0，则表示进入子进程，&gt;0 则父进程，&lt;0则失败；<br>如果需要子父进程间同步，可以调用wait函数处理，该函数的作用是使一个进程等待，<br>直到其它进程结束；</p>
<p>如：</p>
<p>pid_t pid = fork();<br>if(!pid)<br>{<br>&nbsp;std::cout&lt;&lt;"I am Child Process!"&lt;&lt;std::endl;<br>&nbsp;/* do something */<br>}<br>else if (pid &gt; 0)<br>{<br>&nbsp;wait(NULL);<br>&nbsp;/* do something */<br>}<br>else<br>{<br>&nbsp;perror("Fork Error!");<br>&nbsp;exit(1);<br>}</p>
<p><br>exec:<br>execl,execv<br>execvl,execvp</p>
<p>如果操作shell 命令：ls -l<br>execl("/bin/sh","ls","-l",NULL);<br>或<br>char * data[] = {"ls","-l",NULL};<br>execv("/bin/sh",data);<br>其中NULL定义为 (char *)0;表示串结束。<br></p>
<img src ="http://www.cppblog.com/super-/aggbug/88096.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/super-/" target="_blank">Super-</a> 2009-06-19 14:29 <a href="http://www.cppblog.com/super-/archive/2009/06/19/88096.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>command模式</title><link>http://www.cppblog.com/super-/archive/2009/06/19/88069.html</link><dc:creator>Super-</dc:creator><author>Super-</author><pubDate>Fri, 19 Jun 2009 02:00:00 GMT</pubDate><guid>http://www.cppblog.com/super-/archive/2009/06/19/88069.html</guid><wfw:comment>http://www.cppblog.com/super-/comments/88069.html</wfw:comment><comments>http://www.cppblog.com/super-/archive/2009/06/19/88069.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/super-/comments/commentRss/88069.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/super-/services/trackbacks/88069.html</trackback:ping><description><![CDATA[<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008080"><br>//以下采用函数指针的方法完成command模式<br>&nbsp;1</span><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">#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></span><span style="COLOR: #008080">&nbsp;2</span><span style="COLOR: #000000"><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">stdio.h</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;3</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>#include&nbsp;&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">stdlib.h</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;4</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br></span><span style="COLOR: #008080">&nbsp;5</span><span style="COLOR: #000000"><img id=Codehighlighter1_61_161_Open_Image onclick="this.style.display='none'; Codehighlighter1_61_161_Open_Text.style.display='none'; Codehighlighter1_61_161_Closed_Image.style.display='inline'; Codehighlighter1_61_161_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_61_161_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_61_161_Closed_Text.style.display='none'; Codehighlighter1_61_161_Open_Image.style.display='inline'; Codehighlighter1_61_161_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_61_161_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_61_161_Open_Text><span style="COLOR: #008000">/*</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">&nbsp;6</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>command模式：将请求放入到一个类A中，将请求的操作放入另一个类B中，<br></span><span style="COLOR: #008080">&nbsp;7</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>将B作为A的一个Private成员，然后在类C中包含一个类A的Private成员，这样<br></span><span style="COLOR: #008080">&nbsp;8</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>可以通过C来完成B的处理。<br></span><span style="COLOR: #008080">&nbsp;9</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top></span><span style="COLOR: #008000">*/</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">10</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br></span><span style="COLOR: #008080">11</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;CAction<br></span><span style="COLOR: #008080">12</span><span style="COLOR: #000000"><img id=Codehighlighter1_178_268_Open_Image onclick="this.style.display='none'; Codehighlighter1_178_268_Open_Text.style.display='none'; Codehighlighter1_178_268_Closed_Image.style.display='inline'; Codehighlighter1_178_268_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_178_268_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_178_268_Closed_Text.style.display='none'; Codehighlighter1_178_268_Open_Image.style.display='inline'; Codehighlighter1_178_268_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_178_268_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_178_268_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">13</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #0000ff">protected</span><span style="COLOR: #000000">:<br></span><span style="COLOR: #008080">14</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;CAction()<br></span><span style="COLOR: #008080">15</span><span style="COLOR: #000000"><img id=Codehighlighter1_203_207_Open_Image onclick="this.style.display='none'; Codehighlighter1_203_207_Open_Text.style.display='none'; Codehighlighter1_203_207_Closed_Image.style.display='inline'; Codehighlighter1_203_207_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_203_207_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_203_207_Closed_Text.style.display='none'; Codehighlighter1_203_207_Open_Image.style.display='inline'; Codehighlighter1_203_207_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_203_207_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_203_207_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">16</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br></span><span style="COLOR: #008080">17</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">18</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">:<br></span><span style="COLOR: #008080">19</span><span style="COLOR: #000000"><img 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">CAction()<br></span><span style="COLOR: #008080">20</span><span style="COLOR: #000000"><img id=Codehighlighter1_230_234_Open_Image onclick="this.style.display='none'; Codehighlighter1_230_234_Open_Text.style.display='none'; Codehighlighter1_230_234_Closed_Image.style.display='inline'; Codehighlighter1_230_234_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_230_234_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_230_234_Closed_Text.style.display='none'; Codehighlighter1_230_234_Open_Image.style.display='inline'; Codehighlighter1_230_234_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_230_234_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_230_234_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">21</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br></span><span style="COLOR: #008080">22</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">23</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">virtual</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;Operation()&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">24</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<br></span><span style="COLOR: #008080">25</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">26</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br></span><span style="COLOR: #008080">27</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;CExtendAction:</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;CAction<br></span><span style="COLOR: #008080">28</span><span style="COLOR: #000000"><img id=Codehighlighter1_307_447_Open_Image onclick="this.style.display='none'; Codehighlighter1_307_447_Open_Text.style.display='none'; Codehighlighter1_307_447_Closed_Image.style.display='inline'; Codehighlighter1_307_447_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_307_447_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_307_447_Closed_Text.style.display='none'; Codehighlighter1_307_447_Open_Image.style.display='inline'; Codehighlighter1_307_447_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_307_447_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_307_447_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">29</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">:<br></span><span style="COLOR: #008080">30</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;CExtendAction()<br></span><span style="COLOR: #008080">31</span><span style="COLOR: #000000"><img id=Codehighlighter1_335_339_Open_Image onclick="this.style.display='none'; Codehighlighter1_335_339_Open_Text.style.display='none'; Codehighlighter1_335_339_Closed_Image.style.display='inline'; Codehighlighter1_335_339_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_335_339_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_335_339_Closed_Text.style.display='none'; Codehighlighter1_335_339_Open_Image.style.display='inline'; Codehighlighter1_335_339_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_335_339_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_335_339_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">32</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br></span><span style="COLOR: #008080">33</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">34</span><span style="COLOR: #000000"><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">CExtendAction()<br></span><span style="COLOR: #008080">35</span><span style="COLOR: #000000"><img id=Codehighlighter1_360_364_Open_Image onclick="this.style.display='none'; Codehighlighter1_360_364_Open_Text.style.display='none'; Codehighlighter1_360_364_Closed_Image.style.display='inline'; Codehighlighter1_360_364_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_360_364_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_360_364_Closed_Text.style.display='none'; Codehighlighter1_360_364_Open_Image.style.display='inline'; Codehighlighter1_360_364_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_360_364_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_360_364_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">36</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br></span><span style="COLOR: #008080">37</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">38</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;Operation()<br></span><span style="COLOR: #008080">39</span><span style="COLOR: #000000"><img id=Codehighlighter1_384_445_Open_Image onclick="this.style.display='none'; Codehighlighter1_384_445_Open_Text.style.display='none'; Codehighlighter1_384_445_Closed_Image.style.display='inline'; Codehighlighter1_384_445_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_384_445_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_384_445_Closed_Text.style.display='none'; Codehighlighter1_384_445_Open_Image.style.display='inline'; Codehighlighter1_384_445_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_384_445_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_384_445_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">40</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;std::cout</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Execute&nbsp;Operation!</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">std::endl;<br></span><span style="COLOR: #008080">41</span><span style="COLOR: #000000"><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">1</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">42</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">43</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">44</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br></span><span style="COLOR: #008080">45</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>typedef&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;(CAction::</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">oper)();&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">定义类成员指针</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">46</span><span style="COLOR: #008000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">47</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;CCommand<br></span><span style="COLOR: #008080">48</span><span style="COLOR: #000000"><img id=Codehighlighter1_512_697_Open_Image onclick="this.style.display='none'; Codehighlighter1_512_697_Open_Text.style.display='none'; Codehighlighter1_512_697_Closed_Image.style.display='inline'; Codehighlighter1_512_697_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_512_697_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_512_697_Closed_Text.style.display='none'; Codehighlighter1_512_697_Open_Image.style.display='inline'; Codehighlighter1_512_697_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_512_697_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_512_697_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">49</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #0000ff">protected</span><span style="COLOR: #000000">:<br></span><span style="COLOR: #008080">50</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;CAction</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;_act;<br></span><span style="COLOR: #008080">51</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;oper&nbsp;&nbsp;&nbsp;&nbsp;_opt;<br></span><span style="COLOR: #008080">52</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">:<br></span><span style="COLOR: #008080">53</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;CCommand(CAction</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;act,oper&nbsp;opt)<br></span><span style="COLOR: #008080">54</span><span style="COLOR: #000000"><img id=Codehighlighter1_595_626_Open_Image onclick="this.style.display='none'; Codehighlighter1_595_626_Open_Text.style.display='none'; Codehighlighter1_595_626_Closed_Image.style.display='inline'; Codehighlighter1_595_626_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_595_626_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_595_626_Closed_Text.style.display='none'; Codehighlighter1_595_626_Open_Image.style.display='inline'; Codehighlighter1_595_626_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_595_626_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_595_626_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">55</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_act&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;act;<br></span><span style="COLOR: #008080">56</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_opt&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;opt;<br></span><span style="COLOR: #008080">57</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">58</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br></span><span style="COLOR: #008080">59</span><span style="COLOR: #000000"><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">CCommand()<br></span><span style="COLOR: #008080">60</span><span style="COLOR: #000000"><img id=Codehighlighter1_643_647_Open_Image onclick="this.style.display='none'; Codehighlighter1_643_647_Open_Text.style.display='none'; Codehighlighter1_643_647_Closed_Image.style.display='inline'; Codehighlighter1_643_647_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_643_647_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_643_647_Closed_Text.style.display='none'; Codehighlighter1_643_647_Open_Image.style.display='inline'; Codehighlighter1_643_647_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_643_647_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_643_647_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">61</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br></span><span style="COLOR: #008080">62</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">63</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br></span><span style="COLOR: #008080">64</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;Execute()<br></span><span style="COLOR: #008080">65</span><span style="COLOR: #000000"><img id=Codehighlighter1_666_695_Open_Image onclick="this.style.display='none'; Codehighlighter1_666_695_Open_Text.style.display='none'; Codehighlighter1_666_695_Closed_Image.style.display='inline'; Codehighlighter1_666_695_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_666_695_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_666_695_Closed_Text.style.display='none'; Codehighlighter1_666_695_Open_Image.style.display='inline'; Codehighlighter1_666_695_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_666_695_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_666_695_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">66</span><span style="COLOR: #000000"><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;(_act</span><span style="COLOR: #000000">-&gt;*</span><span style="COLOR: #000000">_opt)();<br></span><span style="COLOR: #008080">67</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">68</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">69</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br></span><span style="COLOR: #008080">70</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br></span><span style="COLOR: #008080">71</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;argc,</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;argv[])<br></span><span style="COLOR: #008080">72</span><span style="COLOR: #000000"><img id=Codehighlighter1_735_834_Open_Image onclick="this.style.display='none'; Codehighlighter1_735_834_Open_Text.style.display='none'; Codehighlighter1_735_834_Closed_Image.style.display='inline'; Codehighlighter1_735_834_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_735_834_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_735_834_Closed_Text.style.display='none'; Codehighlighter1_735_834_Open_Image.style.display='inline'; Codehighlighter1_735_834_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_735_834_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_735_834_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">73</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;CAction&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;act&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;CExtendAction();<br></span><span style="COLOR: #008080">74</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;CCommand&nbsp;comd(act,</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">CAction::Operation);<br></span><span style="COLOR: #008080">75</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br></span><span style="COLOR: #008080">76</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;comd.Execute();<br></span><span style="COLOR: #008080">77</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span></div>
<img src ="http://www.cppblog.com/super-/aggbug/88069.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/super-/" target="_blank">Super-</a> 2009-06-19 10:00 <a href="http://www.cppblog.com/super-/archive/2009/06/19/88069.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Observer拉模式</title><link>http://www.cppblog.com/super-/archive/2009/06/18/88020.html</link><dc:creator>Super-</dc:creator><author>Super-</author><pubDate>Thu, 18 Jun 2009 11:27:00 GMT</pubDate><guid>http://www.cppblog.com/super-/archive/2009/06/18/88020.html</guid><wfw:comment>http://www.cppblog.com/super-/comments/88020.html</wfw:comment><comments>http://www.cppblog.com/super-/archive/2009/06/18/88020.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/super-/comments/commentRss/88020.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/super-/services/trackbacks/88020.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: observer推拉模式的区别请参考上一篇observer推模式拉模式源代码如下：&nbsp;1#ifndef&nbsp;__SUBJECT_H__&nbsp;2#define&nbsp;__SUBJECT_H__&nbsp;3&nbsp;4#include&nbsp;&lt;iostream&gt;&nbsp;5#include&nbsp;&lt;vector&gt;&nbsp;6&nbsp...&nbsp;&nbsp;<a href='http://www.cppblog.com/super-/archive/2009/06/18/88020.html'>阅读全文</a><img src ="http://www.cppblog.com/super-/aggbug/88020.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/super-/" target="_blank">Super-</a> 2009-06-18 19:27 <a href="http://www.cppblog.com/super-/archive/2009/06/18/88020.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Observer推模式</title><link>http://www.cppblog.com/super-/archive/2009/06/18/88015.html</link><dc:creator>Super-</dc:creator><author>Super-</author><pubDate>Thu, 18 Jun 2009 10:59:00 GMT</pubDate><guid>http://www.cppblog.com/super-/archive/2009/06/18/88015.html</guid><wfw:comment>http://www.cppblog.com/super-/comments/88015.html</wfw:comment><comments>http://www.cppblog.com/super-/archive/2009/06/18/88015.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/super-/comments/commentRss/88015.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/super-/services/trackbacks/88015.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Observer分为推模式和拉模式；区别在于observer是被动还是主动；推模式中，分发者不管observer是否需要信息，都统一的下发相同的更新给各个observer；拉模式中，由observer主动发起，仅仅向分发者请求自己需要的信息。如果分发者中的数据结构体发生的变化，那么每个observer也会要进行相应的改变；但如果用拉模式，observer对象的处理可以不需要变化。以下为observ...&nbsp;&nbsp;<a href='http://www.cppblog.com/super-/archive/2009/06/18/88015.html'>阅读全文</a><img src ="http://www.cppblog.com/super-/aggbug/88015.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/super-/" target="_blank">Super-</a> 2009-06-18 18:59 <a href="http://www.cppblog.com/super-/archive/2009/06/18/88015.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Bridge模式</title><link>http://www.cppblog.com/super-/archive/2009/06/18/88008.html</link><dc:creator>Super-</dc:creator><author>Super-</author><pubDate>Thu, 18 Jun 2009 09:59:00 GMT</pubDate><guid>http://www.cppblog.com/super-/archive/2009/06/18/88008.html</guid><wfw:comment>http://www.cppblog.com/super-/comments/88008.html</wfw:comment><comments>http://www.cppblog.com/super-/archive/2009/06/18/88008.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/super-/comments/commentRss/88008.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/super-/services/trackbacks/88008.html</trackback:ping><description><![CDATA[Bridge模式将类的定义与实现彻底解耦，采用组合的方式进行处理。<br>代码如下：<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"><span style="COLOR: #008080">&nbsp;1</span><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000">#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></span><span style="COLOR: #008080">&nbsp;2</span><span style="COLOR: #000000"><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">stdio.h</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;3</span><span style="COLOR: #000000"><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">stdlib.h</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;4</span><span style="COLOR: #000000"><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">stdarg.h</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;5</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br></span><span style="COLOR: #008080">&nbsp;6</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">#define</span><span style="COLOR: #000000">&nbsp;STRLEN&nbsp;&nbsp;&nbsp;&nbsp;100</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;7</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;CImplement<br></span><span style="COLOR: #008080">&nbsp;8</span><span style="COLOR: #000000"><img id=Codehighlighter1_116_263_Open_Image onclick="this.style.display='none'; Codehighlighter1_116_263_Open_Text.style.display='none'; Codehighlighter1_116_263_Closed_Image.style.display='inline'; Codehighlighter1_116_263_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_116_263_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_116_263_Closed_Text.style.display='none'; Codehighlighter1_116_263_Open_Image.style.display='inline'; Codehighlighter1_116_263_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_116_263_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_116_263_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">&nbsp;9</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #0000ff">protected</span><span style="COLOR: #000000">:<br></span><span style="COLOR: #008080">10</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;CImplement()<br></span><span style="COLOR: #008080">11</span><span style="COLOR: #000000"><img id=Codehighlighter1_144_148_Open_Image onclick="this.style.display='none'; Codehighlighter1_144_148_Open_Text.style.display='none'; Codehighlighter1_144_148_Closed_Image.style.display='inline'; Codehighlighter1_144_148_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_144_148_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_144_148_Closed_Text.style.display='none'; Codehighlighter1_144_148_Open_Image.style.display='inline'; Codehighlighter1_144_148_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_144_148_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_144_148_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">12</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br></span><span style="COLOR: #008080">13</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">14</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">:<br></span><span style="COLOR: #008080">15</span><span style="COLOR: #000000"><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">CImplement()<br></span><span style="COLOR: #008080">16</span><span style="COLOR: #000000"><img id=Codehighlighter1_174_178_Open_Image onclick="this.style.display='none'; Codehighlighter1_174_178_Open_Text.style.display='none'; Codehighlighter1_174_178_Closed_Image.style.display='inline'; Codehighlighter1_174_178_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_174_178_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_174_178_Closed_Text.style.display='none'; Codehighlighter1_174_178_Open_Image.style.display='inline'; Codehighlighter1_174_178_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_174_178_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_174_178_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">17</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br></span><span style="COLOR: #008080">18</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">19</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br></span><span style="COLOR: #008080">20</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">virtual</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;Operatorion()&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">21</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">virtual</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;PrintMsg(</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;format,<img src="http://www.cppblog.com/Images/dot.gif">)&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">22</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;<br></span><span style="COLOR: #008080">23</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">24</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br></span><span style="COLOR: #008080">25</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br></span><span style="COLOR: #008080">26</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;CExtendImp:</span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">&nbsp;CImplement<br></span><span style="COLOR: #008080">27</span><span style="COLOR: #000000"><img id=Codehighlighter1_303_651_Open_Image onclick="this.style.display='none'; Codehighlighter1_303_651_Open_Text.style.display='none'; Codehighlighter1_303_651_Closed_Image.style.display='inline'; Codehighlighter1_303_651_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_303_651_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_303_651_Closed_Text.style.display='none'; Codehighlighter1_303_651_Open_Image.style.display='inline'; Codehighlighter1_303_651_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_303_651_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_303_651_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">28</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">:<br></span><span style="COLOR: #008080">29</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;CExtendImp()<br></span><span style="COLOR: #008080">30</span><span style="COLOR: #000000"><img id=Codehighlighter1_328_332_Open_Image onclick="this.style.display='none'; Codehighlighter1_328_332_Open_Text.style.display='none'; Codehighlighter1_328_332_Closed_Image.style.display='inline'; Codehighlighter1_328_332_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_328_332_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_328_332_Closed_Text.style.display='none'; Codehighlighter1_328_332_Open_Image.style.display='inline'; Codehighlighter1_328_332_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_328_332_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_328_332_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">31</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br></span><span style="COLOR: #008080">32</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">33</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br></span><span style="COLOR: #008080">34</span><span style="COLOR: #000000"><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">CExtendImp()<br></span><span style="COLOR: #008080">35</span><span style="COLOR: #000000"><img id=Codehighlighter1_351_355_Open_Image onclick="this.style.display='none'; Codehighlighter1_351_355_Open_Text.style.display='none'; Codehighlighter1_351_355_Closed_Image.style.display='inline'; Codehighlighter1_351_355_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_351_355_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_351_355_Closed_Text.style.display='none'; Codehighlighter1_351_355_Open_Image.style.display='inline'; Codehighlighter1_351_355_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_351_355_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_351_355_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">36</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br></span><span style="COLOR: #008080">37</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">38</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br></span><span style="COLOR: #008080">39</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;Operatorion()<br></span><span style="COLOR: #008080">40</span><span style="COLOR: #000000"><img id=Codehighlighter1_379_424_Open_Image onclick="this.style.display='none'; Codehighlighter1_379_424_Open_Text.style.display='none'; Codehighlighter1_379_424_Closed_Image.style.display='inline'; Codehighlighter1_379_424_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_379_424_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_379_424_Closed_Text.style.display='none'; Codehighlighter1_379_424_Open_Image.style.display='inline'; Codehighlighter1_379_424_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_379_424_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_379_424_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">41</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PrintMsg(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%s\t&nbsp;%s</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">Hello</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">&nbsp;,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">World!</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">42</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">43</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br></span><span style="COLOR: #008080">44</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;PrintMsg(</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;format,<img src="http://www.cppblog.com/Images/dot.gif">)<br></span><span style="COLOR: #008080">45</span><span style="COLOR: #000000"><img id=Codehighlighter1_462_649_Open_Image onclick="this.style.display='none'; Codehighlighter1_462_649_Open_Text.style.display='none'; Codehighlighter1_462_649_Closed_Image.style.display='inline'; Codehighlighter1_462_649_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_462_649_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_462_649_Closed_Text.style.display='none'; Codehighlighter1_462_649_Open_Image.style.display='inline'; Codehighlighter1_462_649_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_462_649_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_462_649_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">46</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;va_list&nbsp;tmp_list;<br></span><span style="COLOR: #008080">47</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;va_start(tmp_list,format);<br></span><span style="COLOR: #008080">48</span><span style="COLOR: #000000"><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">char</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;c_buffer&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">char</span><span style="COLOR: #000000">[STRLEN];<br></span><span style="COLOR: #008080">49</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vsprintf(c_buffer,format,tmp_list);<br></span><span style="COLOR: #008080">50</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fprintf(stderr,</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">\r\n*********\r\n%s\r\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,c_buffer);<br></span><span style="COLOR: #008080">51</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">52</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">53</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br></span><span style="COLOR: #008080">54</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;CAbstract<br></span><span style="COLOR: #008080">55</span><span style="COLOR: #000000"><img id=Codehighlighter1_671_765_Open_Image onclick="this.style.display='none'; Codehighlighter1_671_765_Open_Text.style.display='none'; Codehighlighter1_671_765_Closed_Image.style.display='inline'; Codehighlighter1_671_765_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_671_765_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_671_765_Closed_Text.style.display='none'; Codehighlighter1_671_765_Open_Image.style.display='inline'; Codehighlighter1_671_765_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_671_765_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_671_765_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">56</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #0000ff">protected</span><span style="COLOR: #000000">:<br></span><span style="COLOR: #008080">57</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;CAbstract()<br></span><span style="COLOR: #008080">58</span><span style="COLOR: #000000"><img id=Codehighlighter1_698_702_Open_Image onclick="this.style.display='none'; Codehighlighter1_698_702_Open_Text.style.display='none'; Codehighlighter1_698_702_Closed_Image.style.display='inline'; Codehighlighter1_698_702_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_698_702_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_698_702_Closed_Text.style.display='none'; Codehighlighter1_698_702_Open_Image.style.display='inline'; Codehighlighter1_698_702_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_698_702_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_698_702_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">59</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br></span><span style="COLOR: #008080">60</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">61</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">:<br></span><span style="COLOR: #008080">62</span><span style="COLOR: #000000"><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">CAbstract()<br></span><span style="COLOR: #008080">63</span><span style="COLOR: #000000"><img id=Codehighlighter1_727_731_Open_Image onclick="this.style.display='none'; Codehighlighter1_727_731_Open_Text.style.display='none'; Codehighlighter1_727_731_Closed_Image.style.display='inline'; Codehighlighter1_727_731_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_727_731_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_727_731_Closed_Text.style.display='none'; Codehighlighter1_727_731_Open_Image.style.display='inline'; Codehighlighter1_727_731_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_727_731_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_727_731_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">64</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br></span><span style="COLOR: #008080">65</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">66</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br></span><span style="COLOR: #008080">67</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">virtual</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;operation()&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">68</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">69</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br></span><span style="COLOR: #008080">70</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000">&nbsp;CExtendAbstract<br></span><span style="COLOR: #008080">71</span><span style="COLOR: #000000"><img id=Codehighlighter1_791_979_Open_Image onclick="this.style.display='none'; Codehighlighter1_791_979_Open_Text.style.display='none'; Codehighlighter1_791_979_Closed_Image.style.display='inline'; Codehighlighter1_791_979_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_791_979_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_791_979_Closed_Text.style.display='none'; Codehighlighter1_791_979_Open_Image.style.display='inline'; Codehighlighter1_791_979_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_791_979_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_791_979_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">72</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #0000ff">public</span><span style="COLOR: #000000">:<br></span><span style="COLOR: #008080">73</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;CExtendAbstract(CImplement&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;data)<br></span><span style="COLOR: #008080">74</span><span style="COLOR: #000000"><img id=Codehighlighter1_838_871_Open_Image onclick="this.style.display='none'; Codehighlighter1_838_871_Open_Text.style.display='none'; Codehighlighter1_838_871_Closed_Image.style.display='inline'; Codehighlighter1_838_871_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_838_871_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_838_871_Closed_Text.style.display='none'; Codehighlighter1_838_871_Open_Image.style.display='inline'; Codehighlighter1_838_871_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_838_871_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_838_871_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">75</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_imp&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;NULL;<br></span><span style="COLOR: #008080">76</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_imp&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;data;<br></span><span style="COLOR: #008080">77</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">78</span><span style="COLOR: #000000"><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">CExtendAbstract()<br></span><span style="COLOR: #008080">79</span><span style="COLOR: #000000"><img id=Codehighlighter1_894_898_Open_Image onclick="this.style.display='none'; Codehighlighter1_894_898_Open_Text.style.display='none'; Codehighlighter1_894_898_Closed_Image.style.display='inline'; Codehighlighter1_894_898_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_894_898_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_894_898_Closed_Text.style.display='none'; Codehighlighter1_894_898_Open_Image.style.display='inline'; Codehighlighter1_894_898_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_894_898_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_894_898_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">80</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br></span><span style="COLOR: #008080">81</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">82</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br></span><span style="COLOR: #008080">83</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;operation()<br></span><span style="COLOR: #008080">84</span><span style="COLOR: #000000"><img id=Codehighlighter1_920_946_Open_Image onclick="this.style.display='none'; Codehighlighter1_920_946_Open_Text.style.display='none'; Codehighlighter1_920_946_Closed_Image.style.display='inline'; Codehighlighter1_920_946_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_920_946_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_920_946_Closed_Text.style.display='none'; Codehighlighter1_920_946_Open_Image.style.display='inline'; Codehighlighter1_920_946_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_920_946_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_920_946_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">85</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_imp</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">Operatorion();<br></span><span style="COLOR: #008080">86</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">87</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top></span><span style="COLOR: #0000ff">protected</span><span style="COLOR: #000000">:<br></span><span style="COLOR: #008080">88</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;CImplement&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;_imp;<br></span><span style="COLOR: #008080">89</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">90</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br></span><span style="COLOR: #008080">91</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;argc&nbsp;,</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;argv[])<br></span><span style="COLOR: #008080">92</span><span style="COLOR: #000000"><img id=Codehighlighter1_1017_1134_Open_Image onclick="this.style.display='none'; Codehighlighter1_1017_1134_Open_Text.style.display='none'; Codehighlighter1_1017_1134_Closed_Image.style.display='inline'; Codehighlighter1_1017_1134_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_1017_1134_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1017_1134_Closed_Text.style.display='none'; Codehighlighter1_1017_1134_Open_Image.style.display='inline'; Codehighlighter1_1017_1134_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_1017_1134_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_1017_1134_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">93</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;CImplement&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;value&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;CExtendImp();<br></span><span style="COLOR: #008080">94</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;CExtendAbstract</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;abstr&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;CExtendAbstract(value);<br></span><span style="COLOR: #008080">95</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;abstr</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">operation();<br></span><span style="COLOR: #008080">96</span><span style="COLOR: #000000"><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span></div>
<img src ="http://www.cppblog.com/super-/aggbug/88008.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/super-/" target="_blank">Super-</a> 2009-06-18 17:59 <a href="http://www.cppblog.com/super-/archive/2009/06/18/88008.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于release和debug中vector的疑问</title><link>http://www.cppblog.com/super-/archive/2009/06/18/88006.html</link><dc:creator>Super-</dc:creator><author>Super-</author><pubDate>Thu, 18 Jun 2009 09:41:00 GMT</pubDate><guid>http://www.cppblog.com/super-/archive/2009/06/18/88006.html</guid><wfw:comment>http://www.cppblog.com/super-/comments/88006.html</wfw:comment><comments>http://www.cppblog.com/super-/archive/2009/06/18/88006.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/super-/comments/commentRss/88006.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/super-/services/trackbacks/88006.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 定义一个vector：typedef&nbsp;struct&nbsp;_SEED_TOP_{&nbsp;&nbsp;&nbsp;&nbsp;std::string&nbsp;m_Range;//192.168.1.1_192.168.1.255，192.168.2.1-192.168.2.255//每对起始结束ip之间用&#8220;，&#8221;分隔&nbsp;&nbsp;&nbsp;&...&nbsp;&nbsp;<a href='http://www.cppblog.com/super-/archive/2009/06/18/88006.html'>阅读全文</a><img src ="http://www.cppblog.com/super-/aggbug/88006.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/super-/" target="_blank">Super-</a> 2009-06-18 17:41 <a href="http://www.cppblog.com/super-/archive/2009/06/18/88006.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>State设计模式</title><link>http://www.cppblog.com/super-/archive/2009/06/18/87983.html</link><dc:creator>Super-</dc:creator><author>Super-</author><pubDate>Thu, 18 Jun 2009 07:36:00 GMT</pubDate><guid>http://www.cppblog.com/super-/archive/2009/06/18/87983.html</guid><wfw:comment>http://www.cppblog.com/super-/comments/87983.html</wfw:comment><comments>http://www.cppblog.com/super-/archive/2009/06/18/87983.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cppblog.com/super-/comments/commentRss/87983.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/super-/services/trackbacks/87983.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 冒似该模式不能彻底解决switch、case的困扰。源码如下：&nbsp;1#ifndef&nbsp;__CONTENT_H__&nbsp;2#define&nbsp;__CONTENT_H__&nbsp;3#include&nbsp;"State.h"&nbsp;4&nbsp;5class&nbsp;Context&nbsp;6{&nbsp;7public:&nbsp;8&nbsp;&nbs...&nbsp;&nbsp;<a href='http://www.cppblog.com/super-/archive/2009/06/18/87983.html'>阅读全文</a><img src ="http://www.cppblog.com/super-/aggbug/87983.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/super-/" target="_blank">Super-</a> 2009-06-18 15:36 <a href="http://www.cppblog.com/super-/archive/2009/06/18/87983.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>