本系列博客主要介绍c语言的一些屠龙技,里面包含了笔者本人的一些奇思妙想。
该系列博客笔者只是用作记录。如果你偶然找到了这篇博客,但是发现不知所云,请不要过多投入时间,可能笔者本人那时候也看不懂了。
笔者决定用c语言模仿高级语言,例如模拟面向对象:封装,继承,多态。参考的语言是Java,后面打算把java设计模式抽象成c版本。当然,源码只使用c语言和汇编。
先说面向对象的封装:在Java中,有public,private对成员进行封装,在c语言中我们又该怎么办呢?
public不用模拟,那么private要怎么模拟呢?
让笔者先介绍第一种示例:结构体定义放在源文件,接口和声明放在头文件。
如果使用pri->id直接访问,会出现报错,必须使用对应的接口进行访问。
pri.c文件:
笔者再介绍第二种示例:使用static关键字。
static关键字确保声明的对象只能在本文件内被访问,其实也可以间接实现private。