C/C++
文章平均质量分 67
ctwei85
这个作者很懒,什么都没留下…
展开
-
状态机的C语言编程(转)
感谢网友的分享,我才这么快掌握状态机编程,怕丢失了,把网友的帖子全部总结在这里以便俺的查看一有限状态机的实现方式有限状态机(Finite State Machine或者Finite State Automata)是软件领域中一种重要的工具,很多东西的模型实际上就是有限状态机。FSM的实现方式:1) switch/case或者if/else这无意是最直观的方式,使用一堆条件判断,会编程的人都可以做到,对简单小巧的状态机来说最合适,但是毫无疑问,这样的方式比较原始,对庞大的状态机难以维护。2)状态表维护一个二维转载 2010-08-23 15:40:00 · 14851 阅读 · 2 评论 -
函数对象
因为最近在看STL方面的东西,发现好多东东都是以前没有接触过了,下面是一些笔记。 1.什么是函数对象 函数对象就是重载了“()”操作符的对象,也就是说如果一个类重载了“()”操作符,由它创建的对象就是函数对象。 因为函数对象本身是一个类的实例,因此它可以有自己的成员,这样,可以用这些成员保存一些普通函数不能轻易保存的(但可以通过静态局部变量和全局变量保存)的信息。同时,通过这个类的其他方法,可以对它的成员变量进行初始化和检查。 函数对象是比函数更加通用的概念,因为原创 2010-09-03 17:37:00 · 793 阅读 · 0 评论 -
C++中抽象类和接口类的区别(转载)
Bill Venners:我在1991至1996这5年间,几乎一直仅仅使用C++编程。在那时,我认为多重继承唯一目的就是让我能够从多个基类中继承它们各自的数据和函数 — 不管是虚拟函数还是非虚拟函数。那时候,我和我使用C++的同事几乎从未想过可以使用一种不含任何数据而仅包含纯虚函数的类,也就是现在Java中被称为接口的东西。最近您好像又越来越多地提起了抽象类这个概念,我想问问是不是最近在实验的过程中发现了一些我们以前未曾注意到的对纯接口类进行多重继承的好处,抑或是您认为我们以前对抽象类重视得不够?Bjarn转载 2010-09-08 15:05:00 · 974 阅读 · 0 评论 -
dynamic_cast用法
用法:dynamic_cast ( expression ) 该运算符把expression转换成type-id类型的对象。Type-id必须是类的指针、类的引用或者void *; 如果type-id是类指针类型,那么expression也必须是一个指针,如果type-id是一个引用,那么expression也必须是一个引用。 dynamic_cast主要用于类层次间的上行转换和下行转换,还可以用于类之间的交叉转换。 在类层次间进行上行转换时,dynamic_cast和static_ca转载 2010-09-08 15:41:00 · 1007 阅读 · 0 评论 -
较复杂的宏操作符
一。符号粘贴操作符(Token-Pasting Operator)##:把前后两个符号粘贴在一起,其中作为形式参数的符号会被该参数的实际值所替换。例如:#define MERGE(a,b,c) v_##a##_##b##cint MERGE(A,1,2);相当于定义了一个int型的变量v_A_12.二。字符串操作符(Stringizing Opertator)#:把宏的形式参数转换成字符串常量。例如:#define OUTPUT(a) printf(#a)OUTPUT(Hello World/n);会打印原创 2010-09-08 16:12:00 · 850 阅读 · 0 评论