﻿<?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++博客-独望枫-文章分类-学习笔记</title><link>http://www.cppblog.com/LT450196683/category/21223.html</link><description>人在尘世间，有缘自相见，变化千千万，未开窍，已迷恋</description><language>zh-cn</language><lastBuildDate>Tue, 21 Jun 2016 01:38:55 GMT</lastBuildDate><pubDate>Tue, 21 Jun 2016 01:38:55 GMT</pubDate><ttl>60</ttl><item><title>CppCheck</title><link>http://www.cppblog.com/LT450196683/articles/213683.html</link><dc:creator>小菜枫</dc:creator><author>小菜枫</author><pubDate>Sat, 11 Jun 2016 14:13:00 GMT</pubDate><guid>http://www.cppblog.com/LT450196683/articles/213683.html</guid><wfw:comment>http://www.cppblog.com/LT450196683/comments/213683.html</wfw:comment><comments>http://www.cppblog.com/LT450196683/articles/213683.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/LT450196683/comments/commentRss/213683.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/LT450196683/services/trackbacks/213683.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CppCheck是一款静态代码检测工具，详情不多做复制粘贴，有兴趣的可以在网上搜索cppcheck即可有一大堆的cppcheck检测的功能点。<br />&nbsp;&nbsp; &nbsp;&nbsp; 这篇文章，主要是想记录一下如何配置和使用cppcheck。<br />&nbsp;&nbsp; &nbsp;&nbsp; 1.下载<br />&nbsp;&nbsp; &nbsp;&nbsp; 官网下载链接：<div>&nbsp;&nbsp; &nbsp;&nbsp; <a href="http://cppcheck.sourceforge.net">http://cppcheck.sourceforge.net</a><br />&nbsp;&nbsp; &nbsp;&nbsp; 选择对应的版本【32bit/64bit】<br />&nbsp;&nbsp; &nbsp;&nbsp; 2.安装<br />&nbsp;&nbsp; &nbsp;&nbsp; 一路next即可，其默认安装在C盘，大约占用20M+的空间，如果有C盘洁癖症的童鞋可以另选其他安装路径。<br />&nbsp;&nbsp; &nbsp;&nbsp; 3.配置<br />&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; 1）打开visual studio&gt;&gt;选择外部工具&gt;&gt;添加<br />&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; 2）&#8220;标题&#8221;修改为：cppcheck【其实个人喜欢~】<br />&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; 3）&#8221;命令&#8220;选择为刚才安装路径里面的cppcheck.exe<br />&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; 4）&#8220;参数&#8221;修改为：&#8220; --enable=all --template=vs $(ProjectDir)&#8221;<br />&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; 5）&#8220;初始目录&#8221;可通过右方的三角形选择为&#8221;解决方案目录&#8220;<br />&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; 6）勾选使用输出窗口，这样cppcheck检测结果的相关信息即会从输出窗口可见。<br />&nbsp;&nbsp; &nbsp;&nbsp; 配置完成后截图如下：<br />&nbsp;&nbsp; &nbsp;&nbsp; <img src="http://www.cppblog.com/images/cppblog_com/lt450196683/cppcheck.png" alt="" border="0" /><br />&nbsp;&nbsp; &nbsp;&nbsp; 4.使用<br />&nbsp;&nbsp; &nbsp;&nbsp; 经过上述第三步的配置后，在visual studio的工具一栏下面，应该会有一项&#8220;CppCheck&#8221;，在打开相关c++工程后，选择cppcheck即可对工程代码进行检测，相关结果会在输出窗口可以查看。<br />&nbsp;&nbsp; &nbsp;&nbsp; <img src="http://www.cppblog.com/images/cppblog_com/lt450196683/cppcheck1.png" alt="" border="0" /><br />&nbsp;&nbsp; &nbsp;&nbsp; 以上，Done.</div><img src ="http://www.cppblog.com/LT450196683/aggbug/213683.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/LT450196683/" target="_blank">小菜枫</a> 2016-06-11 22:13 <a href="http://www.cppblog.com/LT450196683/articles/213683.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>适配器模式[Adapter]</title><link>http://www.cppblog.com/LT450196683/articles/213678.html</link><dc:creator>小菜枫</dc:creator><author>小菜枫</author><pubDate>Fri, 10 Jun 2016 08:44:00 GMT</pubDate><guid>http://www.cppblog.com/LT450196683/articles/213678.html</guid><wfw:comment>http://www.cppblog.com/LT450196683/comments/213678.html</wfw:comment><comments>http://www.cppblog.com/LT450196683/articles/213678.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/LT450196683/comments/commentRss/213678.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/LT450196683/services/trackbacks/213678.html</trackback:ping><description><![CDATA[&nbsp;&nbsp; &nbsp;&nbsp; 适配器模式主要是可以使两个原本不兼容的功能/类可以兼容。<br />&nbsp;&nbsp; &nbsp;&nbsp; 其主要有两种方式：一、类适配器，二、对象适配器<br />&nbsp;&nbsp; &nbsp;&nbsp; 类适配器是指从类层面就开始设计进行适配，主要实现方式为多重继承。<br />&nbsp;&nbsp; &nbsp;&nbsp; 对象适配器主要是从实例层面进行适配，主要是实现方式为适配器关联一个被适配的对象（实例）。<br />&nbsp;&nbsp; &nbsp;&nbsp; 类适配器的UML图：<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;<img src="http://www.cppblog.com/images/cppblog_com/lt450196683/ClassAdapter.png" alt="" border="0" height="310" width="577" /><br />&nbsp;&nbsp; &nbsp;&nbsp; 对象适配器的UML图：<br />&nbsp;&nbsp; &nbsp;&nbsp; <img src="http://www.cppblog.com/images/cppblog_com/lt450196683/ObjectApadter.png" alt="" border="0" height="326" width="859" /><br />&nbsp;&nbsp; &nbsp;&nbsp; 示例代码如下<br />&nbsp;&nbsp; &nbsp;&nbsp; 类适配器：<br />&nbsp;&nbsp; &nbsp;&nbsp; USE类<br />&nbsp;&nbsp; &nbsp;&nbsp; <br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">&nbsp;1</span>&nbsp;<span style="color: #000000; ">#pragma&nbsp;once<br /></span><span style="color: #008080; ">&nbsp;2</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">class</span><span style="color: #000000; ">&nbsp;USE<br /></span><span style="color: #008080; ">&nbsp;3</span>&nbsp;<span style="color: #000000; ">{<br /></span><span style="color: #008080; ">&nbsp;4</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">:<br /></span><span style="color: #008080; ">&nbsp;5</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;USE();<br /></span><span style="color: #008080; ">&nbsp;6</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">virtual</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">~</span><span style="color: #000000; ">USE();<br /></span><span style="color: #008080; ">&nbsp;7</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">:<br /></span><span style="color: #008080; ">&nbsp;8</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;methodA();<br /></span><span style="color: #008080; ">&nbsp;9</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;methodB();<br /></span><span style="color: #008080; ">10</span>&nbsp;<span style="color: #000000; ">};</span></div>&nbsp;&nbsp; &nbsp;&nbsp; <br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">&nbsp;1</span>&nbsp;<span style="color: #000000; ">#include&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">USE.h</span><span style="color: #000000; ">"</span><span style="color: #000000; "><br /></span><span style="color: #008080; ">&nbsp;2</span>&nbsp;<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;3</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">using</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">namespace</span><span style="color: #000000; ">&nbsp;std;<br /></span><span style="color: #008080; ">&nbsp;4</span>&nbsp;<span style="color: #000000; "><br /></span><span style="color: #008080; ">&nbsp;5</span>&nbsp;<span style="color: #000000; "><br /></span><span style="color: #008080; ">&nbsp;6</span>&nbsp;<span style="color: #000000; ">USE::USE()<br /></span><span style="color: #008080; ">&nbsp;7</span>&nbsp;<span style="color: #000000; ">{<br /></span><span style="color: #008080; ">&nbsp;8</span>&nbsp;<span style="color: #000000; ">}<br /></span><span style="color: #008080; ">&nbsp;9</span>&nbsp;<span style="color: #000000; "><br /></span><span style="color: #008080; ">10</span>&nbsp;<span style="color: #000000; "><br /></span><span style="color: #008080; ">11</span>&nbsp;<span style="color: #000000; ">USE::</span><span style="color: #000000; ">~</span><span style="color: #000000; ">USE()<br /></span><span style="color: #008080; ">12</span>&nbsp;<span style="color: #000000; ">{<br /></span><span style="color: #008080; ">13</span>&nbsp;<span style="color: #000000; ">}<br /></span><span style="color: #008080; ">14</span>&nbsp;<span style="color: #000000; "><br /></span><span style="color: #008080; ">15</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;USE::methodA()<br /></span><span style="color: #008080; ">16</span>&nbsp;<span style="color: #000000; ">{<br /></span><span style="color: #008080; ">17</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;</span><span style="color: #000000; ">&lt;&lt;</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">use&nbsp;methodA</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">&lt;&lt;</span><span style="color: #000000; ">&nbsp;endl;<br /></span><span style="color: #008080; ">18</span>&nbsp;<span style="color: #000000; ">}<br /></span><span style="color: #008080; ">19</span>&nbsp;<span style="color: #000000; "><br /></span><span style="color: #008080; ">20</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;USE::methodB()<br /></span><span style="color: #008080; ">21</span>&nbsp;<span style="color: #000000; ">{<br /></span><span style="color: #008080; ">22</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;</span><span style="color: #000000; ">&lt;&lt;</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">use&nbsp;methodB</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">&lt;&lt;</span><span style="color: #000000; ">&nbsp;endl;<br /></span><span style="color: #008080; ">23</span>&nbsp;<span style="color: #000000; ">}</span></div>&nbsp;&nbsp; &nbsp;&nbsp; ExistFuncModule类<br />&nbsp;&nbsp; &nbsp;&nbsp; <br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">&nbsp;1</span>&nbsp;<span style="color: #000000; ">#pragma&nbsp;once<br /></span><span style="color: #008080; ">&nbsp;2</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">class</span><span style="color: #000000; ">&nbsp;ExistFuncModule<br /></span><span style="color: #008080; ">&nbsp;3</span>&nbsp;<span style="color: #000000; ">{<br /></span><span style="color: #008080; ">&nbsp;4</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">:<br /></span><span style="color: #008080; ">&nbsp;5</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;ExistFuncModule();<br /></span><span style="color: #008080; ">&nbsp;6</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">virtual</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">~</span><span style="color: #000000; ">ExistFuncModule();<br /></span><span style="color: #008080; ">&nbsp;7</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">:<br /></span><span style="color: #008080; ">&nbsp;8</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;FuncA();<br /></span><span style="color: #008080; ">&nbsp;9</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;FuncB();<br /></span><span style="color: #008080; ">10</span>&nbsp;<span style="color: #000000; ">};<br /></span><span style="color: #008080; ">11</span>&nbsp;<span style="color: #000000; "><br /></span><span style="color: #008080; ">12</span>&nbsp;<span style="color: #000000; "></span></div>&nbsp;&nbsp; &nbsp;&nbsp; <br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">&nbsp;1</span>&nbsp;<span style="color: #000000; ">#include&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">ExistFuncModule.h</span><span style="color: #000000; ">"</span><span style="color: #000000; "><br /></span><span style="color: #008080; ">&nbsp;2</span>&nbsp;<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;3</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">using</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">namespace</span><span style="color: #000000; ">&nbsp;std;<br /></span><span style="color: #008080; ">&nbsp;4</span>&nbsp;<span style="color: #000000; "><br /></span><span style="color: #008080; ">&nbsp;5</span>&nbsp;<span style="color: #000000; "><br /></span><span style="color: #008080; ">&nbsp;6</span>&nbsp;<span style="color: #000000; ">ExistFuncModule::ExistFuncModule()<br /></span><span style="color: #008080; ">&nbsp;7</span>&nbsp;<span style="color: #000000; ">{<br /></span><span style="color: #008080; ">&nbsp;8</span>&nbsp;<span style="color: #000000; ">}<br /></span><span style="color: #008080; ">&nbsp;9</span>&nbsp;<span style="color: #000000; "><br /></span><span style="color: #008080; ">10</span>&nbsp;<span style="color: #000000; "><br /></span><span style="color: #008080; ">11</span>&nbsp;<span style="color: #000000; ">ExistFuncModule::</span><span style="color: #000000; ">~</span><span style="color: #000000; ">ExistFuncModule()<br /></span><span style="color: #008080; ">12</span>&nbsp;<span style="color: #000000; ">{<br /></span><span style="color: #008080; ">13</span>&nbsp;<span style="color: #000000; ">}<br /></span><span style="color: #008080; ">14</span>&nbsp;<span style="color: #000000; "><br /></span><span style="color: #008080; ">15</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;ExistFuncModule::FuncA()<br /></span><span style="color: #008080; ">16</span>&nbsp;<span style="color: #000000; ">{<br /></span><span style="color: #008080; ">17</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;</span><span style="color: #000000; ">&lt;&lt;</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;&nbsp;existfuncmodule&nbsp;funcA</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">&lt;&lt;</span><span style="color: #000000; ">&nbsp;endl;<br /></span><span style="color: #008080; ">18</span>&nbsp;<span style="color: #000000; ">}<br /></span><span style="color: #008080; ">19</span>&nbsp;<span style="color: #000000; "><br /></span><span style="color: #008080; ">20</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;ExistFuncModule::FuncB()<br /></span><span style="color: #008080; ">21</span>&nbsp;<span style="color: #000000; ">{<br /></span><span style="color: #008080; ">22</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;</span><span style="color: #000000; ">&lt;&lt;</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;&nbsp;existfuncmodule&nbsp;funcB</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">&lt;&lt;</span><span style="color: #000000; ">&nbsp;endl;<br /></span><span style="color: #008080; ">23</span>&nbsp;<span style="color: #000000; ">}</span></div><span style="color: #000000;">&nbsp;&nbsp; &nbsp;&nbsp; ClassApadter类<br />&nbsp;&nbsp; &nbsp;&nbsp; <br /></span><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">&nbsp;1</span>&nbsp;<span style="color: #000000; ">#pragma&nbsp;once<br /></span><span style="color: #008080; ">&nbsp;2</span>&nbsp;<span style="color: #000000; ">#include&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">USE.h</span><span style="color: #000000; ">"</span><span style="color: #000000; "><br /></span><span style="color: #008080; ">&nbsp;3</span>&nbsp;<span style="color: #000000; ">#include&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">ExistFuncModule.h</span><span style="color: #000000; ">"</span><span style="color: #000000; "><br /></span><span style="color: #008080; ">&nbsp;4</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">class</span><span style="color: #000000; ">&nbsp;ClassApadter&nbsp;:<br /></span><span style="color: #008080; ">&nbsp;5</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;USE&nbsp;,&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;ExistFuncModule<br /></span><span style="color: #008080; ">&nbsp;6</span>&nbsp;<span style="color: #000000; ">{<br /></span><span style="color: #008080; ">&nbsp;7</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">:<br /></span><span style="color: #008080; ">&nbsp;8</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;ClassApadter();<br /></span><span style="color: #008080; ">&nbsp;9</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">virtual</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">~</span><span style="color: #000000; ">ClassApadter();<br /></span><span style="color: #008080; ">10</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">:<br /></span><span style="color: #008080; ">11</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;methodA();<br /></span><span style="color: #008080; ">12</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;methodB();<br /></span><span style="color: #008080; ">13</span>&nbsp;<span style="color: #000000; ">};<br /></span><span style="color: #008080; ">14</span>&nbsp;<span style="color: #000000; "><br /></span><span style="color: #008080; ">15</span>&nbsp;<span style="color: #000000; "></span></div><span style="color: #000000;">&nbsp;&nbsp; &nbsp;&nbsp; <br /></span><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">&nbsp;1</span>&nbsp;<span style="color: #000000; ">#include&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">ClassApadter.h</span><span style="color: #000000; ">"</span><span style="color: #000000; "><br /></span><span style="color: #008080; ">&nbsp;2</span>&nbsp;<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;3</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">using</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">namespace</span><span style="color: #000000; ">&nbsp;std;<br /></span><span style="color: #008080; ">&nbsp;4</span>&nbsp;<span style="color: #000000; "><br /></span><span style="color: #008080; ">&nbsp;5</span>&nbsp;<span style="color: #000000; "><br /></span><span style="color: #008080; ">&nbsp;6</span>&nbsp;<span style="color: #000000; ">ClassApadter::ClassApadter()<br /></span><span style="color: #008080; ">&nbsp;7</span>&nbsp;<span style="color: #000000; ">{<br /></span><span style="color: #008080; ">&nbsp;8</span>&nbsp;<span style="color: #000000; ">}<br /></span><span style="color: #008080; ">&nbsp;9</span>&nbsp;<span style="color: #000000; "><br /></span><span style="color: #008080; ">10</span>&nbsp;<span style="color: #000000; "><br /></span><span style="color: #008080; ">11</span>&nbsp;<span style="color: #000000; ">ClassApadter::</span><span style="color: #000000; ">~</span><span style="color: #000000; ">ClassApadter()<br /></span><span style="color: #008080; ">12</span>&nbsp;<span style="color: #000000; ">{<br /></span><span style="color: #008080; ">13</span>&nbsp;<span style="color: #000000; ">}<br /></span><span style="color: #008080; ">14</span>&nbsp;<span style="color: #000000; "><br /></span><span style="color: #008080; ">15</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;ClassApadter::methodA()<br /></span><span style="color: #008080; ">16</span>&nbsp;<span style="color: #000000; ">{<br /></span><span style="color: #008080; ">17</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;</span><span style="color: #000000; ">&lt;&lt;</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">ClassApadter&nbsp;methodA</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">&lt;&lt;</span><span style="color: #000000; ">&nbsp;endl;<br /></span><span style="color: #008080; ">18</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;FuncA();<br /></span><span style="color: #008080; ">19</span>&nbsp;<span style="color: #000000; ">}<br /></span><span style="color: #008080; ">20</span>&nbsp;<span style="color: #000000; "><br /></span><span style="color: #008080; ">21</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;ClassApadter::methodB()<br /></span><span style="color: #008080; ">22</span>&nbsp;<span style="color: #000000; ">{<br /></span><span style="color: #008080; ">23</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;</span><span style="color: #000000; ">&lt;&lt;</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">ClassApadter&nbsp;methodB</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">&lt;&lt;</span><span style="color: #000000; ">&nbsp;endl;<br /></span><span style="color: #008080; ">24</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;FuncB();<br /></span><span style="color: #008080; ">25</span>&nbsp;<span style="color: #000000; ">}<br /></span><span style="color: #008080; ">26</span>&nbsp;<span style="color: #000000; "></span></div><span style="color: #000000;">&nbsp;&nbsp; &nbsp;&nbsp; <br />&nbsp;&nbsp; &nbsp;&nbsp; 对象适配器：<br />&nbsp;&nbsp; &nbsp;&nbsp; USE类和ExistFuncModule类和上面一致<br />&nbsp;&nbsp; &nbsp;&nbsp; ObjectApadter类<br />&nbsp;&nbsp; &nbsp;&nbsp; <br /></span><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">&nbsp;1</span>&nbsp;<span style="color: #000000; ">#pragma&nbsp;once<br /></span><span style="color: #008080; ">&nbsp;2</span>&nbsp;<span style="color: #000000; ">#include&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">USE.h</span><span style="color: #000000; ">"</span><span style="color: #000000; "><br /></span><span style="color: #008080; ">&nbsp;3</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">class</span><span style="color: #000000; ">&nbsp;ExistFuncModule;<br /></span><span style="color: #008080; ">&nbsp;4</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">class</span><span style="color: #000000; ">&nbsp;ObjectApadter&nbsp;:<br /></span><span style="color: #008080; ">&nbsp;5</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">&nbsp;USE<br /></span><span style="color: #008080; ">&nbsp;6</span>&nbsp;<span style="color: #000000; ">{<br /></span><span style="color: #008080; ">&nbsp;7</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">:<br /></span><span style="color: #008080; ">&nbsp;8</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;ObjectApadter();<br /></span><span style="color: #008080; ">&nbsp;9</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">virtual</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">~</span><span style="color: #000000; ">ObjectApadter();<br /></span><span style="color: #008080; ">10</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">public</span><span style="color: #000000; ">:<br /></span><span style="color: #008080; ">11</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;methodA();<br /></span><span style="color: #008080; ">12</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;methodB();<br /></span><span style="color: #008080; ">13</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">private</span><span style="color: #000000; ">:<br /></span><span style="color: #008080; ">14</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;ExistFuncModule</span><span style="color: #000000; ">*</span><span style="color: #000000; ">&nbsp;pExistFuncModule;<br /></span><span style="color: #008080; ">15</span>&nbsp;<span style="color: #000000; ">};<br /></span><span style="color: #008080; ">16</span>&nbsp;<span style="color: #000000; "><br /></span><span style="color: #008080; ">17</span>&nbsp;<span style="color: #000000; "></span></div><span style="color: #000000;">&nbsp;&nbsp; &nbsp;&nbsp; <br /></span><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">&nbsp;1</span>&nbsp;<span style="color: #000000; ">#include&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">ObjectApadter.h</span><span style="color: #000000; ">"</span><span style="color: #000000; "><br /></span><span style="color: #008080; ">&nbsp;2</span>&nbsp;<span style="color: #000000; ">#include&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">ExistFuncModule.h</span><span style="color: #000000; ">"</span><span style="color: #000000; "><br /></span><span style="color: #008080; ">&nbsp;3</span>&nbsp;<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;4</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">using</span><span style="color: #000000; ">&nbsp;</span><span style="color: #0000FF; ">namespace</span><span style="color: #000000; ">&nbsp;std;<br /></span><span style="color: #008080; ">&nbsp;5</span>&nbsp;<span style="color: #000000; "><br /></span><span style="color: #008080; ">&nbsp;6</span>&nbsp;<span style="color: #000000; ">ObjectApadter::ObjectApadter()<br /></span><span style="color: #008080; ">&nbsp;7</span>&nbsp;<span style="color: #000000; ">{<br /></span><span style="color: #008080; ">&nbsp;8</span>&nbsp;<span style="color: #000000; ">}<br /></span><span style="color: #008080; ">&nbsp;9</span>&nbsp;<span style="color: #000000; "><br /></span><span style="color: #008080; ">10</span>&nbsp;<span style="color: #000000; "><br /></span><span style="color: #008080; ">11</span>&nbsp;<span style="color: #000000; ">ObjectApadter::</span><span style="color: #000000; ">~</span><span style="color: #000000; ">ObjectApadter()<br /></span><span style="color: #008080; ">12</span>&nbsp;<span style="color: #000000; ">{<br /></span><span style="color: #008080; ">13</span>&nbsp;<span style="color: #000000; ">}<br /></span><span style="color: #008080; ">14</span>&nbsp;<span style="color: #000000; "><br /></span><span style="color: #008080; ">15</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;ObjectApadter::methodA()<br /></span><span style="color: #008080; ">16</span>&nbsp;<span style="color: #000000; ">{<br /></span><span style="color: #008080; ">17</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;</span><span style="color: #000000; ">&lt;&lt;</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">ObjectApadter&nbsp;methodA</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">&lt;&lt;</span><span style="color: #000000; ">&nbsp;endl;<br /></span><span style="color: #008080; ">18</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;pExistFuncModule</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">FuncA();<br /></span><span style="color: #008080; ">19</span>&nbsp;<span style="color: #000000; ">}<br /></span><span style="color: #008080; ">20</span>&nbsp;<span style="color: #000000; "><br /></span><span style="color: #008080; ">21</span>&nbsp;<span style="color: #000000; "></span><span style="color: #0000FF; ">void</span><span style="color: #000000; ">&nbsp;ObjectApadter::methodB()<br /></span><span style="color: #008080; ">22</span>&nbsp;<span style="color: #000000; ">{<br /></span><span style="color: #008080; ">23</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;</span><span style="color: #000000; ">&lt;&lt;</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">"</span><span style="color: #000000; ">ObjectApadter&nbsp;methodB</span><span style="color: #000000; ">"</span><span style="color: #000000; ">&nbsp;</span><span style="color: #000000; ">&lt;&lt;</span><span style="color: #000000; ">&nbsp;endl;<br /></span><span style="color: #008080; ">24</span>&nbsp;<span style="color: #000000; ">&nbsp;&nbsp;&nbsp;&nbsp;pExistFuncModule</span><span style="color: #000000; ">-&gt;</span><span style="color: #000000; ">FuncB();<br /></span><span style="color: #008080; ">25</span>&nbsp;<span style="color: #000000; ">}</span></div><span style="color: #000000;">&nbsp;&nbsp; &nbsp;&nbsp; <br />&nbsp;&nbsp; &nbsp;&nbsp; 以上纯粹为个人学习记录，如有不对，烦请各位大大批评指出&#8230;&#8230;<br /></span><img src ="http://www.cppblog.com/LT450196683/aggbug/213678.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/LT450196683/" target="_blank">小菜枫</a> 2016-06-10 16:44 <a href="http://www.cppblog.com/LT450196683/articles/213678.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>