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);
{
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;
}
{
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;
}
{
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;
}
{
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;
}
阅读全文
1 0
- c语言结构体实现类似c++类构造函数
- c语言构造函数
- C语言实现使用静态数组来构造栈结构
- C语言实现使用动态数组来构造栈结构
- C语言实现类中方法 用函数指针在结构体中加入函数
- C语言中的构造函数
- C语言的函数和结构体
- C语言基础---------函数,结构体
- C语言基础--函数和结构体
- C语言结构体中的函数指针
- c语言结构体里的函数
- C语言构造数据类型之结构体、共用体、枚举
- C语言 构造类型(结构体、枚举)
- C语言函数堆栈结构
- C语言实现不定结构体
- C语言实现结构体继承
- [c语言]结构体实现通讯录
- 利用c语言结构体实现通讯录
- android Retrofit2.0 RxJava2.0
- Spring源码学习--Spring配置文件解析BeanDefinitionDocumentReader(三)
- Mysql数据库的索引
- servlet代码
- 【慕课网】网页布局基础学习笔记
- c语言结构体实现类似c++类构造函数
- android OkHttp3.0
- JDK源码系列(1)----LinkedList 源码分析
- 创建ITable不能更新记录的问题
- 【ARM】Linux驱动移植
- 学生信息管理系统 之 “探索原因和办法”
- 计算机图形学——扫描圆
- ModelSim自动化仿真
- Ubuntu16.04+Titan X+CUDA8.0+cudnn5.1+Caffe