当前位置:   article > 正文

怎么使用C语言实现一个简单的类_c语言写类

c语言写类

听到一哥们碰到一个面试题,说使用C模拟一个类。我们知道C中是没有类的概念的,那我们怎么使用C模拟类呢?其实我们的办法并不多,宏定义可能会是一个不错的选择,下面是简单的尝试。

  1. #define Struct_S \
  2. int a;\
  3. int b;\
  4. int c
  5. struct S
  6. {
  7. Struct_S;
  8. };
  9. #define Struct_H \
  10. Struct_S; \
  11. float e; \
  12. float f
  13. struct H
  14. {
  15. Struct_H;
  16. };
  17. //成员函数
  18. typedef struct S S;
  19. typedef struct H H;
  20. static void s_mem_function(S *obj_s)
  21. {
  22. }
  23. static void h_mem_function(H *obj_h)
  24. {
  25. }

上面是简单的模拟了继承和成员函数的实现。其实,对于成员函数,也可以进一步模拟函数表,但是那样可能会显得啰嗦不自然,具体如下:

  1. //函数表
  2. struct FuncTable_S
  3. {
  4. void (*s_mem_function_1)(S *obj_s);
  5. void (*s_mem_function_2)(S *obj_s);
  6. }
  7. struct S
  8. {
  9. Struct_S;
  10. struct FuncTable_S funct_s;
  11. };

这样以来调用的时候,会出现s->functt_s->s_function_1多重指定的问题,看着别扭。不如直接使用上面的形式方便。

其实能使用C的地方绝大多数时候都能使用C++,与其使用C去模拟C++现实类的特性,大多数时候还不如直接使用C++呢。


声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/43350?site
推荐阅读
相关标签
  

闽ICP备14008679号