在C语言中模拟类的思想
.简单模拟一下
其实类的思想就是C语言中结构体的一个扩充 在结构体数据中加入了函数指针来实现对结构体数据的处理 大概就是这个意思
用C标准来模拟一下类的思想 VC6编译通过
#include <stdio.h>
#include <stdlib.h>
typedef struct node
{
int year;
int month;
int day;
int (*f1)(struct node *);
}Day;
int Show(Day * date)
{
printf("%d-%2d-%2d \r\n",date->year,date->month,date->day);
return 1;
}
Day * CreateDay(Day * date,int year,int month,int day)
{
Day * d;
d=(Day *)malloc(sizeof(Day));
if(!d)return 0;
d->year=year;
d->month=month;
d->day=day;
d->f1=Show;
return d;
}
int main()
{
Day * date=NULL;
date=CreateDay(date,2005,12,31);
date->f1(date);
free(date);
return 0;
} 的确可以,就是有点麻烦,函数多了的话有点乱,毕竟封装性做的不是太好 VC中类和结构体本身就是差不多的了(结构体支持构造函数,函数,属性等)
只是结构体中全部都是公共域,没有私有域 现在回到家了 现在可以跟着Nisy继续大哥学习
先重新看看前13课视频 看见指针头就有点晕 原帖由 suiyunonghen 于 2009-7-18 09:39 发表 https://www.chinapyg.com/images/common/back.gif
VC中类和结构体本身就是差不多的了(结构体支持构造函数,函数,属性等)
只是结构体中全部都是公共域,没有私有域
.cpp结构体和类功能是一样的好吧,只不过类默认是私有,结构体是公有
谁告诉你结构体不能有private? 真的 不怎么懂 啊 呵呵
看来我要补课啊 这里好像全是c 原帖由 boy 于 2009-7-29 00:51 发表 https://www.chinapyg.com/images/common/back.gif
.cpp结构体和类功能是一样的好吧,只不过类默认是私有,结构体是公有
谁告诉你结构体不能有private?
呵呵,谁说结构体中不能有private 呢,只是没有什么实际应用意义而已,所以在实例中一般没有出现。但是在讲类与结构的异同点时都讲过的咯。
页:
[1]
2