- 博客(5)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 疯狂指针(3)
同样,我们再创建一个关于栈的类抽象出栈的方法构成接口//Stack.hClass Stack{ int length; int size; Class Element **bottom; void (*destroy)(Class Stack *this); void (*clear)(Class Stack *this); Boolean (*isEm
2006-03-12 15:49:00 652
原创 疯狂指针(2)
进行到现在,我们已经创建了Class Element类并且知道了一些自己定的默认的规则。现在我们设计另外一个稍微比Class Element类复杂一点的类线性表类Class List。同样的,先把线性表所应该有的方法抽象出来:List.h//List.hClass List{ Class Element *head; //头节点(链式表专用) Class Element
2006-03-12 12:53:00 710
原创 疯狂指针(1)
有了那些const.h的定义后,我们就可以开工了。首先我们先定义一个元素类Class Element,这个类是下面我们实现线性表List、栈Stack等等基础数据结构的关键。一般来说,定义一个类,如果这个类有多种实现方式,比如说线性表List可以用数组Array和链表Chain这两种形式来实现,那么这个时候我们就要把List所应该具备有的基本功能抽象出来,作为所有不同方法实现线性表的公共接口。
2006-03-12 12:08:00 781
原创 疯狂指针(0)
疯狂指针,并没有疯狂到从汇编的角度去理解指针,因为不同类型、不同版本的编译器生成的汇编代码都可能不一样,所以也就没有什么可比性可言。我们要讨论的是如何把C语言的指针再重新包装一下,变成我们平常所理解的类,并使用这些类。为了方便使用,我们在这里先定义一个头文件。const.h//const.h/*一些常量*/#define Null 0 //空指针#define C
2006-03-12 11:40:00 758
原创 Mad Pointer in C
在C语言中,变量variable的类型是定义得非常死板的。没有一个特殊类型的变量能被强制转换成其他的类型。或者任意类型的变量能直接强制转换成为一个特殊类型。的确,这样的特殊类型在C语言中是不存在的。 但是,我们可以找到一个特殊的指针去实现这样万能的转换。这样特殊的使命就交给一个最常用的,但是却最不理解的类型void*。没错,void是一个特殊的类型。说他特殊是因为
2006-03-12 11:09:00 895
关于公司福利的法律问题咨询
2010-01-12
TA创建的收藏夹 TA关注的收藏夹
TA关注的人