怎么使用C语言实现一个简单的类
来源:互联网 发布:java用户昵称随机生成 编辑:程序博客网 时间:2024/05/20 13:15
听到一哥们碰到一个面试题,说使用C模拟一个类。我们知道C中是没有类的概念的,那我们怎么使用C模拟类呢?其实我们的办法并不多,宏定义可能会是一个不错的选择,下面是简单的尝试。
#define Struct_S \int a;\int b;\int cstruct S{Struct_S;};#define Struct_H \Struct_S; \float e; \float fstruct H{Struct_H;};//成员函数typedef struct S S;typedef struct H H;static void s_mem_function(S *obj_s){}static void h_mem_function(H *obj_h){}
上面是简单的模拟了继承和成员函数的实现。其实,对于成员函数,也可以进一步模拟函数表,但是那样可能会显得啰嗦不自然,具体如下:
//函数表struct FuncTable_S{void (*s_mem_function_1)(S *obj_s);void (*s_mem_function_2)(S *obj_s);}struct S {Struct_S;struct FuncTable_S funct_s;};
这样以来调用的时候,会出现s->functt_s->s_function_1多重指定的问题,看着别扭。不如直接使用上面的形式方便。
其实能使用C的地方绝大多数时候都能使用C++,与其使用C去模拟C++现实类的特性,大多数时候还不如直接使用C++呢。
阅读全文
0 0
- 怎么使用C语言实现一个简单的类
- 使用c语言实现一个简单的易语言
- 一个简单的HashMap C语言实现
- 一个简单的HashMap C语言实现
- BloomFilter的一个简单实现(C语言)
- C语言实现一个简单的计算器
- 【C语言】实现一个简单的通讯录
- C语言实现一个简单的栈
- C语言实现一个简单的服务器
- 如何使用纯win32函数和C语言实现一个简单的文本编辑器
- C语言实现的一个简单的万年历
- C语言实现的一个简单的HTTP程序
- 用c语言的实现一个简单的交互式shell
- C语言实现的一个简单的HTTP程序
- C语言实现的一个简单的HTTP程序
- C语言实现的一个简单的HTTP程序
- C语言实现的一个简单的HTTP程序
- C语言实现的一个简单的HTTP程序
- IDEA使用Tomcat和Maven插件启动maven项目的参数配置;
- Java线程-6:线程的交互
- MySQL--操作简记(创建计算字段,数据处理函数(文本,时间日期,数值))
- HDU 6092 Rikka with Subset
- JVM——类文件结构
- 怎么使用C语言实现一个简单的类
- Apache Camel系列(3)----Redis组件
- Angular——作用域($scope)内变量的变量名是动态的
- Visual Studio Code 使用Git进行版本控制
- python3--文件读写1
- idea 之git使用详细教程
- 模拟实现ls-l进阶
- sql语句
- SVN 踩坑