先说一下我的想法, 对于我来说, 类就是附带函数的结构体.
举一个例子. 在写C语言程序时, 经常会遇到栈这一数据结构.
在纯C语言下, 栈可以这么实现:
struct STACK {
int point;
int datas[STACK_MAX];
};
int stack_init(struct STACK *pstack)
{
pstack->point = 0;
return 0;
}
int stack_push(struct STACK *pstack, int data)
{
if(pstack->point < STACK_MAX) {
pstack->datas[pstack->point] = data;
pstack->point++;
return 0;
} else {
return 1;
}
}
int stack_pop(struct STACK *pstack, int *result)
{
if(pstack->point > 0) {
*result = pstack->datas[pstack->point-1];
pstack->point--;
return 0;
} else {
return 1;
}
}
现在我们有两个栈需要操作, 比如说这样:
int main(void)
{
struct STACK stack1, stack2;
int i;
stack_init(&stack1);
stack_init(&stack2);
stack_push(&stack1, 1);
stack_push(&stack1, 2);
stack_push(&stack1, 3);
stack_push(&stack2, 123);
stack_pop(&stack2, &i);
return 0;
}