c语言结构体实现类似c++类构造函数

来源:互联网 发布:sai mac破解版 编辑:程序博客网 时间:2024/06/04 00:38
这两天看了一下函数指针,就实现了一下用结构体实现类似于类定义的功能。

#include <stdio.h>
typedef struct demo
{
 int i;
 int j;
 int (*geti)(struct demo *it);
 int (*getj)(struct demo *it);
 void (*set)(struct demo *it, int i, int j);
 int(*max) (struct demo *it);
}Demo;
int geti(struct demo *it)
{
 return it->i;
}
int getj(struct demo *it)
{
 return it->j;
}
int max(struct demo *it)
{
 return (it->i > it->j ? it->i : it->j);
}
void set(struct demo *it, int i, int j)
{
 it->i = i;
 it->j = j;
}
int main()
{
 Demo d;
 
 d.set = set;
 d.max = max;
 d.geti = geti;
 d.getj = getj;
 
 d.set(&d, 3, 4);
 printf("max=%d\n", d.max(&d));
 printf("i = %d\n", d.geti(&d));
 printf("i = %d\n", d.getj(&d));
 getchar();
 
 return 0;
}
原创粉丝点击