<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>pandaxcl的专栏--我的网站开站啦：http://www.autodev.net</title><link>http://blog.csdn.net/pandaxcl/</link><description>熊春雷的专栏</description><dc:language>zh-CN</dc:language><lastUpdateTime>Tue, 05 Feb 2008 12:51:10 GMT</lastUpdateTime><ttl>60</ttl><item><dc:creator>pandaxcl</dc:creator><title>配合STL算法编写类的成员函数</title><link>http://blog.csdn.net/pandaxcl/archive/2008/02/05/2084287.aspx</link><pubDate>Tue, 05 Feb 2008 12:51:00 GMT</pubDate><guid>http://blog.csdn.net/pandaxcl/archive/2008/02/05/2084287.aspx</guid><wfw:comment>http://blog.csdn.net/pandaxcl/comments/2084287.aspx</wfw:comment><comments>http://blog.csdn.net/pandaxcl/archive/2008/02/05/2084287.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/pandaxcl/comments/commentRss/2084287.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=2084287</trackback:ping><description>我们在使用C++的开发工作中，经常会编写许许多多的类，当然也会编写大量的成员函数。但是对于如何设计类的结构，如何确定类的成员，这将会是一个艰难的抉择过程。在编写C++类的过程中，我们都希望是我们的成员函数集合最小化，但是常常很难做到这一点。本文就来详细的讨论一下这个问题！&lt;img src ="http://blog.csdn.net/pandaxcl/aggbug/2084287.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>pandaxcl</dc:creator><title>自动化C++程序设计---基础篇_分析C++重载函数(3)--存在的问题</title><link>http://blog.csdn.net/pandaxcl/archive/2007/10/23/1840324.aspx</link><pubDate>Tue, 23 Oct 2007 21:58:00 GMT</pubDate><guid>http://blog.csdn.net/pandaxcl/archive/2007/10/23/1840324.aspx</guid><wfw:comment>http://blog.csdn.net/pandaxcl/comments/1840324.aspx</wfw:comment><comments>http://blog.csdn.net/pandaxcl/archive/2007/10/23/1840324.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/pandaxcl/comments/commentRss/1840324.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1840324</trackback:ping><description>从前面的代码还可以看出，应用any的过程中还是有比较大的限制。例如当多个重载函数的第一个参数类型相同的时候，虽然后续的参数类型不同，是合法的C++重载函数，但是 any就不知道该转型为那一个，从而产生了编译错误：）本文就给出了几种解决这种难题的方法：）&lt;img src ="http://blog.csdn.net/pandaxcl/aggbug/1840324.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>pandaxcl</dc:creator><title>自动化C++程序设计---基础篇_分析C++重载函数(2)--分析函数参数的种类</title><link>http://blog.csdn.net/pandaxcl/archive/2007/10/23/1840317.aspx</link><pubDate>Tue, 23 Oct 2007 21:55:00 GMT</pubDate><guid>http://blog.csdn.net/pandaxcl/archive/2007/10/23/1840317.aspx</guid><wfw:comment>http://blog.csdn.net/pandaxcl/comments/1840317.aspx</wfw:comment><comments>http://blog.csdn.net/pandaxcl/archive/2007/10/23/1840317.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/pandaxcl/comments/commentRss/1840317.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1840317</trackback:ping><description>在上一篇文档中提到了分析函数参数数量的方法，现在就来解决更深层次的问题：这些数量的函数参数具体是什么类型的？本文就给出了一个比较统一的方法实现了采用C++模板语言分析出类域中的某个函数的参数具体是什么！&lt;img src ="http://blog.csdn.net/pandaxcl/aggbug/1840317.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>pandaxcl</dc:creator><title>自动化C++程序设计---基础篇_分析C++重载函数(1)--分析函数参数的数量</title><link>http://blog.csdn.net/pandaxcl/archive/2007/10/23/1840311.aspx</link><pubDate>Tue, 23 Oct 2007 21:52:00 GMT</pubDate><guid>http://blog.csdn.net/pandaxcl/archive/2007/10/23/1840311.aspx</guid><wfw:comment>http://blog.csdn.net/pandaxcl/comments/1840311.aspx</wfw:comment><comments>http://blog.csdn.net/pandaxcl/archive/2007/10/23/1840311.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/pandaxcl/comments/commentRss/1840311.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1840311</trackback:ping><description>在分析C++代码的时候，特别是分析C++函数（仿函数）的时候，若是能够分析出在一个名字空间（类域）里面的指定函数名称的函数的参数的数量将会是非常有用的：）这一章就对这个问题进行详细的分析。&lt;img src ="http://blog.csdn.net/pandaxcl/aggbug/1840311.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>pandaxcl</dc:creator><title>自动化C++程序设计---分析C++类结构</title><link>http://blog.csdn.net/pandaxcl/archive/2007/10/23/1840308.aspx</link><pubDate>Tue, 23 Oct 2007 21:49:00 GMT</pubDate><guid>http://blog.csdn.net/pandaxcl/archive/2007/10/23/1840308.aspx</guid><wfw:comment>http://blog.csdn.net/pandaxcl/comments/1840308.aspx</wfw:comment><comments>http://blog.csdn.net/pandaxcl/archive/2007/10/23/1840308.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/pandaxcl/comments/commentRss/1840308.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1840308</trackback:ping><description>本文采用C++语言自身的模板语言实现了分析C++类结构的功能。C++类结构的内容包括：
1.类是否拥有指定参数的成员函数
2.类是否存在指定名称的成员函数
3.类是否存在指定名称的成员变量
4.类是否存在指定名称的子类（型）
&lt;img src ="http://blog.csdn.net/pandaxcl/aggbug/1840308.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>pandaxcl</dc:creator><title>自动化C++程序设计---分析C++类层次</title><link>http://blog.csdn.net/pandaxcl/archive/2007/10/23/1840299.aspx</link><pubDate>Tue, 23 Oct 2007 21:45:00 GMT</pubDate><guid>http://blog.csdn.net/pandaxcl/archive/2007/10/23/1840299.aspx</guid><wfw:comment>http://blog.csdn.net/pandaxcl/comments/1840299.aspx</wfw:comment><comments>http://blog.csdn.net/pandaxcl/archive/2007/10/23/1840299.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/pandaxcl/comments/commentRss/1840299.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1840299</trackback:ping><description>本文介绍了采用C++的模板技术，可以实现C++语言自己分析自己的类层次结构：）可以分析出某个类的基类是什么，是不是很神奇啊；）&lt;img src ="http://blog.csdn.net/pandaxcl/aggbug/1840299.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>pandaxcl</dc:creator><title>自动化C++程序设计---C++里的模板语言</title><link>http://blog.csdn.net/pandaxcl/archive/2007/10/23/1840294.aspx</link><pubDate>Tue, 23 Oct 2007 21:42:00 GMT</pubDate><guid>http://blog.csdn.net/pandaxcl/archive/2007/10/23/1840294.aspx</guid><wfw:comment>http://blog.csdn.net/pandaxcl/comments/1840294.aspx</wfw:comment><comments>http://blog.csdn.net/pandaxcl/archive/2007/10/23/1840294.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/pandaxcl/comments/commentRss/1840294.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1840294</trackback:ping><description>介绍通过C++中的模板，可以表达为一种计算机语言的原理：）拥有整数加减乘除四则运算，选择结构和循环结构：）具备有通用编程语言具备的基本结构，从而构成了语言结构，本文只是解释前述结构的实现方式；）&lt;img src ="http://blog.csdn.net/pandaxcl/aggbug/1840294.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>pandaxcl</dc:creator><title>应用篇_撤销(Undo)和重做(Redo)的C++自动化实现(6)---扩展的框架代码</title><link>http://blog.csdn.net/pandaxcl/archive/2007/10/11/1820803.aspx</link><pubDate>Thu, 11 Oct 2007 21:26:00 GMT</pubDate><guid>http://blog.csdn.net/pandaxcl/archive/2007/10/11/1820803.aspx</guid><wfw:comment>http://blog.csdn.net/pandaxcl/comments/1820803.aspx</wfw:comment><comments>http://blog.csdn.net/pandaxcl/archive/2007/10/11/1820803.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/pandaxcl/comments/commentRss/1820803.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1820803</trackback:ping><description>有了前面的这些基础性的代码之后，我们就可以处理大量的撤销和重做操作了：）但是通常的情况下，我们还是希望能够往command里面添加一些额外的信息。例如：为了在图形用户界面应用程序里面显示还可以撤销的命令队列列表以及可以重做的命令列表，这两种情况下都需要给每一个命令添加一个额外的名称信息，所以我们将前面的command代码修改为下面的basic_command代码：&lt;img src ="http://blog.csdn.net/pandaxcl/aggbug/1820803.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>pandaxcl</dc:creator><title>应用篇_撤销(Undo)和重做(Redo)的C++自动化实现(5)---处理多类型的对象以及命令管理</title><link>http://blog.csdn.net/pandaxcl/archive/2007/10/11/1820801.aspx</link><pubDate>Thu, 11 Oct 2007 21:23:00 GMT</pubDate><guid>http://blog.csdn.net/pandaxcl/archive/2007/10/11/1820801.aspx</guid><wfw:comment>http://blog.csdn.net/pandaxcl/comments/1820801.aspx</wfw:comment><comments>http://blog.csdn.net/pandaxcl/archive/2007/10/11/1820801.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/pandaxcl/comments/commentRss/1820801.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1820801</trackback:ping><description>目前为止，已经成功的将三个基本操作封装为三个基本命令，同时也将一个复合操作封装成了一个复合命令，另外也给出了简单的使用代码；从代码中可以看出，撤销和重做的过程还是比较晦涩，用户为了表达撤销和重做的过程还需要编写很多的额外代码，而且这种代码也没有很直接的表达撤销和重做的思想。&lt;img src ="http://blog.csdn.net/pandaxcl/aggbug/1820801.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>pandaxcl</dc:creator><title>应用篇_撤销(Undo)和重做(Redo)的C++自动化实现(4)---将撤销和重做的基本架构模组化</title><link>http://blog.csdn.net/pandaxcl/archive/2007/10/11/1820795.aspx</link><pubDate>Thu, 11 Oct 2007 21:21:00 GMT</pubDate><guid>http://blog.csdn.net/pandaxcl/archive/2007/10/11/1820795.aspx</guid><wfw:comment>http://blog.csdn.net/pandaxcl/comments/1820795.aspx</wfw:comment><comments>http://blog.csdn.net/pandaxcl/archive/2007/10/11/1820795.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/pandaxcl/comments/commentRss/1820795.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1820795</trackback:ping><description>虽然有了上面的命令基类、复合操作类就可以实现\ *任意*\ 的撤销和重做功能的程序了，但是很明显，还需要编写大量的派生自命令基类的\ *各种各样*\ 的操作类。那么有没有办法减轻或者消除这种负担呢？&lt;img src ="http://blog.csdn.net/pandaxcl/aggbug/1820795.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>pandaxcl</dc:creator><title>应用篇_撤销(Undo)和重做(Redo)的C++自动化实现(3)---撤销和重做的基本架构</title><link>http://blog.csdn.net/pandaxcl/archive/2007/10/11/1820791.aspx</link><pubDate>Thu, 11 Oct 2007 21:19:00 GMT</pubDate><guid>http://blog.csdn.net/pandaxcl/archive/2007/10/11/1820791.aspx</guid><wfw:comment>http://blog.csdn.net/pandaxcl/comments/1820791.aspx</wfw:comment><comments>http://blog.csdn.net/pandaxcl/archive/2007/10/11/1820791.aspx#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://blog.csdn.net/pandaxcl/comments/commentRss/1820791.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1820791</trackback:ping><description>在上一节中，已经对三种基本操作的撤销和重做的原理实现进行了细致的分析，并给出了示例代码，但是并没能够给出复合操作的示例代码。这里面有着比较深刻的原因，具体来说就是：复合操作里面保存的是三个基本操作以及子复合操作的任意组合，这里面本身就存在一个将三个基本操作和复合操作\ **对象化**\ 的概念，在三个基本操作实现对象化之前是不能够讨论复合操作的！既然需要对三个基本操作进行对象化，同时还应该看到：复合操作可以保存其它的复合操作，这说明复合操作也需要对象化！既然三个基本操作和一个复合操作都需要对象化，并且这些对象都可以保存到复合操作里面，那么在对三个基本操作的对象化的同时就应该考虑复合操作的对象化问题！&lt;img src ="http://blog.csdn.net/pandaxcl/aggbug/1820791.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>pandaxcl</dc:creator><title>应用篇_撤销(Undo)和重做(Redo)的C++自动化实现(2)---撤销和重做原理</title><link>http://blog.csdn.net/pandaxcl/archive/2007/10/11/1820788.aspx</link><pubDate>Thu, 11 Oct 2007 21:16:00 GMT</pubDate><guid>http://blog.csdn.net/pandaxcl/archive/2007/10/11/1820788.aspx</guid><wfw:comment>http://blog.csdn.net/pandaxcl/comments/1820788.aspx</wfw:comment><comments>http://blog.csdn.net/pandaxcl/archive/2007/10/11/1820788.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/pandaxcl/comments/commentRss/1820788.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1820788</trackback:ping><description>采用通用的方法，解释了撤销(undo)和重做(redo)的原理实现：）&lt;img src ="http://blog.csdn.net/pandaxcl/aggbug/1820788.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>pandaxcl</dc:creator><title>应用篇_撤销(Undo)和重做(Redo)的C++自动化实现(1)---交换函数swap功能的讨论</title><link>http://blog.csdn.net/pandaxcl/archive/2007/10/11/1820740.aspx</link><pubDate>Thu, 11 Oct 2007 20:32:00 GMT</pubDate><guid>http://blog.csdn.net/pandaxcl/archive/2007/10/11/1820740.aspx</guid><wfw:comment>http://blog.csdn.net/pandaxcl/comments/1820740.aspx</wfw:comment><comments>http://blog.csdn.net/pandaxcl/archive/2007/10/11/1820740.aspx#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://blog.csdn.net/pandaxcl/comments/commentRss/1820740.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1820740</trackback:ping><description>在撤销和重做的实现过程中，总会出现各种各样的特殊情况和特殊技巧来实现撤销和重做功能，由于本系列文档实现的是采用了一般化的方法实现了撤销和重做框架！所以就要思考这样的问题：采用取巧的方法是否一定比这里通用的方法在时间和空间上面高效呢？本文就是通过讨论一个基本的交换函数来作为类比，虽然不是很有说服力的解释，但是也说明了不少的问题！&lt;img src ="http://blog.csdn.net/pandaxcl/aggbug/1820740.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>pandaxcl</dc:creator><title>Lex和Yacc从入门到精通(7)-筛选信息(容错处理)</title><link>http://blog.csdn.net/pandaxcl/archive/2007/03/21/1536784.aspx</link><pubDate>Wed, 21 Mar 2007 21:28:00 GMT</pubDate><guid>http://blog.csdn.net/pandaxcl/archive/2007/03/21/1536784.aspx</guid><wfw:comment>http://blog.csdn.net/pandaxcl/comments/1536784.aspx</wfw:comment><comments>http://blog.csdn.net/pandaxcl/archive/2007/03/21/1536784.aspx#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://blog.csdn.net/pandaxcl/comments/commentRss/1536784.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1536784</trackback:ping><description>在通常的情况下，我们只关心文本中的一部分信息，但是为了编写词法和语法分析程序，又不得不将所有的结构信息全部描写出来，例如：我们仅仅关心C 源文档中的类名字信息，而不关心类是否有成员变量，是否有成员函数以及是否有其它的一些C 内容。这就是Lex和Yacc的错误(error)处理的一个应用:)我非常喜欢:) &lt;img src ="http://blog.csdn.net/pandaxcl/aggbug/1536784.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>pandaxcl</dc:creator><title>Undo（Redo）撤销和重做代码的最后测试文件（相当于文档）</title><link>http://blog.csdn.net/pandaxcl/archive/2006/12/31/1471571.aspx</link><pubDate>Sun, 31 Dec 2006 23:02:00 GMT</pubDate><guid>http://blog.csdn.net/pandaxcl/archive/2006/12/31/1471571.aspx</guid><wfw:comment>http://blog.csdn.net/pandaxcl/comments/1471571.aspx</wfw:comment><comments>http://blog.csdn.net/pandaxcl/archive/2006/12/31/1471571.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/pandaxcl/comments/commentRss/1471571.aspx</wfw:commentRss><trackback:ping>http://tb.blog.csdn.net/TrackBack.aspx?PostId=1471571</trackback:ping><description>本文是之前写过的撤销和重做库的一份比较完整的测试文档，可以当作文档来使用，不过不知道应该如何在这个博客里面链接完整代码，所以需要代码的朋友可以到CSDN的下载频道去下载(pandaxcl.rar)，或者来邮件索取，如果您使用了我的代码，请麻烦通知一声，我会非常欣慰的:)&lt;img src ="http://blog.csdn.net/pandaxcl/aggbug/1471571.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>