- 博客(62)
- 资源 (6)
- 收藏
- 关注
原创 使用Vim批量完成函数体的生成
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">使用Vim批量完成函数体的生成/*<![CDATA[*/body { color: #000; background-color: #fff; margin: 0px 10%
2008-09-11 21:55:00 3329 3
原创 网友们的问题可以到http://bbs.autodev.net论坛上面发表
首先非常感谢广大网友对我的博客的关注,鉴于网友们所提的问题,很多是重复的,因此特意办了一个论坛:http://bbs.autodev.net,如果有问题可以到论坛上面提出,本人一定尽力做到有问必答:)这样之后再有网友有问题,可以先到论坛上面查看一下,这样我也可以专心做其他的一些事情:)谢谢了:)另外本人的文档将会在http://www.autodev.net网站上面发表:)所以
2008-06-28 11:57:00 1252 1
原创 配合STL算法编写类的成员函数
配合STL算法编写类的成员函数 我们在使用C++的开发工作中,经常会编写许许多多的类,当然也会编写大量的成员函数。但是对于如何设计类的结构,如何确定类的成员,这将会是一个艰难的抉择过程。在编写C++类的过程中,我们都希望是我们的成员函数集合最小化,但是常常很难做到这一点。本文就来详细的讨论一下这个问题!在游戏开发中有一个单元类: class Unit{public:
2008-02-05 12:51:00 2325 4
原创 自动化C++程序设计---基础篇_分析C++重载函数(3)--存在的问题
/*<![CDATA[*/body { color: #000; background-color: #fff; margin: 0px 10%; min-width: 720px; font-family: 新宋体; counter-reset: chapter section subsection subsubsection paragraph lchapt
2007-10-23 21:58:00 2189 4
原创 自动化C++程序设计---基础篇_分析C++重载函数(2)--分析函数参数的种类
/*<![CDATA[*/body { color: #000; background-color: #fff; margin: 0px 10%; min-width: 720px; font-family: 新宋体; counter-reset: chapter section subsection subsubsection paragraph lchapt
2007-10-23 21:55:00 1883
原创 自动化C++程序设计---基础篇_分析C++重载函数(1)--分析函数参数的数量
/*<![CDATA[*/body { color: #000; background-color: #fff; margin: 0px 10%; min-width: 720px; font-family: 新宋体; counter-reset: chapter section subsection subsubsection paragraph lchapt
2007-10-23 21:52:00 2005
原创 自动化C++程序设计---分析C++类结构
/*<![CDATA[*/body { color: #000; background-color: #fff; margin: 0px 10%; min-width: 720px; font-family: 新宋体; counter-reset: chapter section subsection subsubsection paragraph lchapt
2007-10-23 21:49:00 3426
原创 自动化C++程序设计---分析C++类层次
/*<![CDATA[*/body { color: #000; background-color: #fff; margin: 0px 10%; min-width: 720px; font-family: 新宋体; counter-reset: chapter section subsection subsubsection paragraph lchapt
2007-10-23 21:45:00 2416 1
原创 自动化C++程序设计---C++里的模板语言
/*<![CDATA[*/body { color: #000; background-color: #fff; margin: 0px 10%; min-width: 720px; font-family: 新宋体; counter-reset: chapter section subsection subsubsection paragraph lchapt
2007-10-23 21:42:00 2984
原创 应用篇_撤销(Undo)和重做(Redo)的C++自动化实现(6)---扩展的框架代码
/*<![CDATA[*/body { color: #000; background-color: #fff; margin: 0px 10%; min-width: 720px; font-family: 新宋体; counter-reset: chapter section subsection subsubsection paragraph lchapt
2007-10-11 21:26:00 2581
原创 应用篇_撤销(Undo)和重做(Redo)的C++自动化实现(5)---处理多类型的对象以及命令管理
/*<![CDATA[*/body { color: #000; background-color: #fff; margin: 0px 10%; min-width: 720px; font-family: 新宋体; counter-reset: chapter section subsection subsubsection paragraph lchapt
2007-10-11 21:23:00 2096
原创 应用篇_撤销(Undo)和重做(Redo)的C++自动化实现(4)---将撤销和重做的基本架构模组化
/*<![CDATA[*/body { color: #000; background-color: #fff; margin: 0px 10%; min-width: 720px; font-family: 新宋体; counter-reset: chapter section subsection subsubsection paragraph lchapt
2007-10-11 21:21:00 2253
原创 应用篇_撤销(Undo)和重做(Redo)的C++自动化实现(3)---撤销和重做的基本架构
/*<![CDATA[*/body { color: #000; background-color: #fff; margin: 0px 10%; min-width: 720px; font-family: 新宋体; counter-reset: chapter section subsection subsubsection paragraph lchapt
2007-10-11 21:19:00 2654 5
原创 应用篇_撤销(Undo)和重做(Redo)的C++自动化实现(2)---撤销和重做原理
/*<![CDATA[*/body { color: #000; background-color: #fff; margin: 0px 10%; min-width: 720px; font-family: 新宋体; counter-reset: chapter section subsection subsubsection paragraph lchapt
2007-10-11 21:16:00 2833
原创 应用篇_撤销(Undo)和重做(Redo)的C++自动化实现(1)---交换函数swap功能的讨论
/*<![CDATA[*/body { color: #000; background-color: #fff; margin: 0px 10%; min-width: 720px; font-family: 新宋体; counter-reset: chapter section subsection subsubsection paragraph lchapt
2007-10-11 20:32:00 2368 2
原创 Lex和Yacc从入门到精通(7)-筛选信息(容错处理)
#if 0 在通常的情况下,我们只关心文本中的一部分信息,但是为了编写词法和语法分析程序,又不得不将所有的结构信息全部描写出来,例如:我们仅仅关心C++源文档中的类名字信息,而不关心类是否有成员变量,是否有成员函数以及是否有其它的一些C++内容。将结构信息全部描述出来的做法是费时费力的,通常的情况往往导致项目的不可完成或者延期完成。另外,作为程序设计者和代码编
2007-03-21 21:28:00 9626 4
原创 Undo(Redo)撤销和重做代码的最后测试文件(相当于文档)
本文是之前写过的撤销和重做库的一份比较完整的测试文档,可以当作文档来使用,不过不知道应该如何在这个博客里面链接完整代码,所以需要代码的朋友可以到 CSDN的下载频道去下载(pandaxcl.rar),或者来邮件索取,如果您使用了我的代码,请麻烦通知一声,我会非常欣慰的:) #include #include #include "test.h"#include "undo/command.h
2006-12-31 23:02:00 1929
原创 采用最一般的序列化方法生成有特殊序列化顺序要求的格式文件的方法
#if 0封装操作在创建文件格式上面的作用#endif#if 0封装操作,我的理解是封装了函数调用并且能够延迟调用的一个变量!这种方式在C/C++里面就有好多种:函数指针,仿函数。实际上我们编写程序的过程就是一个设计函数调用顺序的过程。#endif#if 0通常的情况是我们将函数调用顺序以静态编码的形式写死了:#endif#ifdef SAMPLE1#include using namesp
2006-11-30 00:53:00 1845 1
原创 Lex和Yacc从入门到精通(6)-解析C/C++包含文件
解析C/C++包含文件 本文版权归熊春雷 所有,我的邮箱:pandaxcl@163.com>,欢迎大 家和我讨论计算机方面的问题,在我的博客 http://blog.csdn.net/pandaxcl上面还写了很多其他 的文档,有空来看看哦。如果转载,请保留此版权信息,并注明出处。 谢谢:) 摘要 在这一章里面将要涉及到处理C
2006-10-05 14:00:00 10772 6
原创 Lex和Yacc从入门到精通(5)-开发Lex和Yacc程序的一般步骤
Lex和Yacc程序开发的一般步骤 本文版权归熊春雷 所有,我的邮箱:pandaxcl@163.com>,欢迎大 家和我讨论计算机方面的问题,在我的博客 http://blog.csdn.net/pandaxcl上面还写了很多其他 的文档,有空来看看哦。如果转载,请保留此版权信息,并注明出处。 谢谢:) 摘要 经过前面章节的准
2006-10-03 12:34:00 7246 2
原创 Lex和Yacc从入门到精通(4)-能够使用C++的Lex和Yacc框架
能够使用C++的Lex和Yacc框架 本文版权归熊春雷所有 ,我的邮箱:pandaxcl@163.com>,欢迎大家和我讨论计算机方面 的问题,在我的博客上 面还写了很多其他的文档,有空来看看哦。如果转载,请保留此版权信息,并注 明出处。谢谢:) 摘要 写这一章的目的就是为了能够提供一个能够使用C++特色的Lex和Yacc框架,这个
2006-09-26 22:10:00 12253
原创 Lex和Yacc从入门到精通(3)--一个极其简单的lex和yacc程序
一个极其简单的lex和yacc程序 本文版权归熊春雷所有 ,我的邮箱:pandaxcl@163.com>,欢迎大家和我讨论计算机方面 的问题,在我的博客上 面还写了很多其他的文档,有空来看看哦。如果转载,请保留此版权信息,并注 明出处。谢谢:) 摘要 在本章中,将会首先给出一个最基本的lex和yacc联合使用的框架,这个基本框架
2006-08-27 17:45:00 21657 10
原创 C++中模板构造函数和模板转义运算符的妙用
#if 0 在C++中我们会遇到如何让一个函数能够接收任意的类型的参数的问题,在C语言中解决这个问题的方法是使用省略号作为函数的原型,但是省略号参数并不能指定参数具体的数量因此存在着一定的安全隐患,最近在研究Loki库的可继承性静态代码的时候发现在C++中还存在另外一种C++特有的方法,那就是采用模板构造函数和模板转换运算符。 现在来看看具体的代码:#endif#include #in
2006-07-06 12:25:00 3435 1
原创 Lex和Yacc从入门到精通(2)--正则表达式篇
正则表达式在Unix/Liunx系统中起着非常重要的作用,在很大一部分的程序中都使用了正则表达式,可以这么说:“在Unix/Linux系统中,如果不懂正则表达式就不算会使用该系统”。本文中使用的Lex和Yacc都是基于正则表达式的应用,因此有必要用一篇文档的形式详细说明在Lex和Yacc中使用的正则表达式为何物!其实正则表达式非常简单,用过DOS的人都知道通配符吧,说得简单一点,正则表达式就是
2006-07-05 08:36:00 8525 2
原创 Lex和Yacc从入门到精通(1)--环境配置篇
环境设置 本文版权归熊春雷所有 ,我的邮箱:pandaxcl@163.com>,欢迎大家和我讨论计算机方面 的问题,在我的博客上 面还写了很多其他的文档,有空来看看哦。如果转载,请保留此版权信息,并注 明出处。谢谢:) Abstract 在开发程序的过程中经常会遇到文本解析的问题,例如:解析C语言源程序,编写 脚本引擎等等,
2006-07-04 10:07:00 26181 4
原创 用lex将xpm文件转换成为自定义的OpenGL使用的纹理文件格式
在进行游戏编程的过程中经常会遇到图像文件的读取需求,但是如果直接使用其它的图像库,要么没有源代码,要么非常难以使用,要么就会出现版权纠纷。实际上经常的情况就是仅仅只是需要一种纹理数据,至于具体的文件格式根本就没有需要,完全可以自定义一种文件格式,使得读取尽可能的简洁明了。听起来似乎很难,其实不然,本人在多年的游戏开发过程中总结出来了一种简洁明了的方法,因为主要是用于OpenGL程序的,所以我将其命
2006-06-26 13:18:00 2097
原创 梯形求积公式的逐次分半法(C语言实现)
#if 0 在好几个网友的要求下,先给出一个简单的逐次分半法梯形求积公式的C语言直接实现。不过还是提醒一下如果学习算法的话,最好还是自己实际进行编码的好。#endif#ifdef CODE1//g++ -DCODE1 thisfile.cpp#include #include // 梯形公式的逐次分半法求积函数double integral( double a,
2006-05-21 10:25:00 4342
原创 撤销和重做(Undo和Redo)的C++完美实现(9)
#if 0 在这一章里面将会讨论到该撤销和重做库的序列化问题。序列化几乎是每一个应用程序中都会考虑到的问题,在本系列文档的开始就已经提到了该撤销和重做库天生具备了序列化能力,那么在本文中将会详细的讨论序列化的问题。并且尽可能的给出非常具有弹性的序列化框架。 为了保证该序列化框架的弹性,我将该序列化框架分为三大部分: (1)档案类,专门负责档案格式的 (2)序列化类,专门负责
2006-04-28 18:15:00 2285 2
原创 C++自动化(模板元)编程基础与应用(6)
#if 0 在上一章里面讨论了代码的自动生成机制,经常会遇到根据不同的类型选择不同的操作的情况,也就是静态分派的问题。这就需要有一种机制用来识别不同的类型,在本章里面将会系统的讨论C++里面可用的类型识别问题。 最常见的有下面几种: (1)根据模板参数需要精确匹配类型来识别类型 (2)根据隐式自动转型来判断类型是否可以自动转型,从而可以判断是某个基类的派生类。
2006-04-24 19:55:00 2073 10
原创 撤销和重做(Undo和Redo)的C++完美实现(8-B)
#if 0 本来这一章是要讨论对前一章里面封装的控制面板类进行STL算法兼容性讨论的,但是在讨论这个问题之前发现前一章里面对客户端的代码编写有一个特别的要求:简单类型和复合类型必须用前一章里面的分隔符进行分隔,这就要对客户端编码规范进行限制。这是一个对库的使用者的限制,但是本撤销和重做库的目标之一就是尽可能少的给出使用该库的规则,降低库的使用者的使用门槛。因此也就自然而然的想到了,这个额外的
2006-04-24 10:41:00 1760 1
原创 撤销和重做(Undo和Redo)的C++完美实现(8-A)
#if 0 在上一章里面已经成功的封装了复合类型,基本上已经具备了应用的基础。在这一章里面将会尝试对前面讨论的简单类型和复合类型进行应用,同时也是进一步的进行封装的过程。通过提供一个统一的应用界面就可以使客户端不必区别处理简单类型和复合类型之间的各个操作的不同,而是由库来处理这种不同,这正是体现C++自动化(模板元)编程的优势的时候了。在这一章中将会讨论这个封装过程。#endif#ifdef
2006-04-23 17:09:00 1626
原创 撤销和重做(Undo和Redo)的C++完美实现(7-B)
#if 0 在这一章里面将会讲解如何派生上一章里面所讲解的复合类,生成自己特殊的复合类。生成这种特殊的复合类的派生类的目的就是为了方便使用者能够方便的添加自己的操作,同时也是为了生成相应的类型。实际上需要对前一篇文章里面的的compound类进行修改,参见代码CODE1:#endif#ifdef CODE1#include #include "command.h"#include "cent
2006-04-22 12:48:00 1477 1
原创 撤销和重做(Undo和Redo)的C++完美实现(7-A)
#if 0 在上一章里面讨论了复合对象的问题。RoundRectangle类(b)方案是一个复合类方案,从上一章的内容我们可以看出虽然实现了一个RoundRectangle类确实是一个复合类,但是实现复合类是一个比较繁琐的事情,对于一个程序里面有很多这种类的情况,那么前一章里面的编码过程将会是一个非常繁琐的体力劳动。在这一章里面将使用模板元编程将这种繁琐的体力劳动自动化。 在给出实现之
2006-04-20 09:43:00 4735 11
原创 C++自动化(模板元)编程基础与应用(5)
#if 0 在上一篇文章里面讨论了C++里面的代码生成技术,使用的是scatter,不过上一篇文章里面也提到了,前一篇文章里面讨论的代码生成模板scatter使用的类型串绝对不允许重复。其实上一篇中的scatter使用由重复的类型的类型串也是能够正常生成代码的,不过产生的代码却不能将类型重复的变量分辨出来,这样生成的代码就没有了什么实际意义,所以在这一章中将要解决的问题是:重新编写一个可以使
2006-04-20 09:41:00 1888
原创 查找一个文本文件中的字符串所在的行并输出行数
#if 0 在CSDN上有一个网友问道下面的这个问题: 我想查找一个文本文件中的字符串所在的行并输出行数! 在此我给出一个比较简洁的方案如代码CODE1所示: #endif#ifdef CODE1#include #include #include using namespace std;int main(){ ifstream in("dat
2006-04-18 22:40:00 4942 5
原创 C++自动化(模板元)编程基础与应用(4)
#if 0 这一章,我们将要开始的讨论C++里面的代码生成技术。说起代码生成技术,实际上这并不是C++的专利,作为C++子集的C语言早就已经使用了一定的代码生成技术,这就是C宏。我想C宏大家应该非常熟悉了吧,特别是能够实现带参数的宏使得大量的库利用这种技术来生成那些格式重复的代码,例如:微软的MFC库,跨平台的GUI库wxWidget,Boost库等等都使用了C宏。虽然C宏在这些库里面扮演了
2006-04-18 12:04:00 1764
原创 C++自动化(模板元)编程基础与应用(3)
#if 0 在前面的两章里面讨论了C++模板元作为C++的一门二级语言的问题,并给出了常用的程序设计语言的语素的实现,是一个完备的体系。总的来说,前面的章节里面是采用了下面的方法来实现这些语素的: (1)整数计算结果通过enum变量进行保存 (2)类型计算结果通过typedef进行保存 (3)?:运算符可用来实现静态整型表达式的选择功能 (4)模板特化可用来实现静态类
2006-04-17 20:17:00 2080 3
原创 C++自动化(模板元)编程基础与应用(2)
#if 0 在上一篇文章的最后提到了一个相对来说通用一点的LOOP循环,下面还是将上一篇文章中的LOOP循环代码复制如下:#endif#ifdef CODE1#include templatesize_t n> void print(){//这里的n是编译期的结果,可以用来定义数组的 int a[n+1];//这么做是为了证明n是编译期常量 std::cout s
2006-04-16 22:01:00 1845 3
原创 C++自动化(模板元)编程基础与应用(1)
#if 0 大家好,在这一类的文章中将会系统的介绍模板元编程的相关基础知识。最主要的是这类文章的目的就是让不熟悉模板元的C++迷们尽快的进入到模板元的奇妙世界里面来,所以每一篇文章都将只会讨论一个话题,尽可能的把这个话题说清楚明白就可以了。 好了,言归正传。大家都知道C++是一们计算机语言,这一点也没错,但是你知道C++里面还包含了另外一种子语言么?呵呵,恐怕知道的人就不多了,会用的人
2006-04-16 13:45:00 3095 8
原创 撤销和重做(Undo和Redo)的C++完美实现(6)
#if 0 在前面的章节中我们讨论的对象都是简单对象,那么什么是简单对象呢?关于这个问题,首先还是先关注一下C++语言里面的基本类型。C++语言里面的基本类型如下: char (signed,unsigned) int (signed,unsigned) short (signed,unsigned) long (signed,unsigned) flo
2006-04-15 16:32:00 2709 5
lexyaccmingw3
2010-08-06
lexyaccmingw2
2010-08-06
自动化C++开发(基本成型版)
2008-07-13
lexyaccmingw
2007-10-25
撤销和重做代码库
2006-12-31
LexYacc
2006-09-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人