C语言是一种结构化的编程语言,以模块化功能和处理过程设计为主,从而实现数据与代码分隔。面向对象的编程语言,核心是类,类用来创造对象的模板,类的三要素为:封装,继承,多态。C语言本身对面向对象的支持很弱,但可以通过一些技巧来实现,从面向对象的思想上找一些对应的实现方法。
面向对象: C语言:
类的实现 ———— 结构体
封装性 ———— 一个功能一个程序
多态性 ———— 函数指针
类的实现:在C语言的语法中结构体struct和类的表述最为接近。我们可以根据面向对象的思想抽象出具体事物来作为结构体struct的成员变量。
封装性:将一个函数功能写在一个.c文件里。//一个文件实现一个类,类名与文件名相同,以一个文件作为基本的编程单元。在C语言的中,我们把头文件和实现文件名以(命名空间_类名)的形式命名。然后在这个文件中定义类的struct结构体,结构体名为命名空间_类名,然后抽象出类的属性作为成员变量。然后在这个文件中定义类的方法,方法的命名规则为"命名空间_类名 _动词_名词"的形式,命名空间类似java的包名或是c++的namespace注意命名空间不用像java一样写那么长的包名,自己酌情设置,方法的第一个参数为struct结构体的指针。对于公共方法和变量在头文件中声明并用extern关键则修饰,对于私有方法和变量使用static关键字修饰,但不要在头文件中声明。对于保护变量因为暂时没找到相应的实现,暂时用公共方法和变量的方法来实现以后找到后会补充。对于类的构造函数和解析函数,我们使用定义额外两个函数表示:struct 类名 * 命名空间_类名_creat(参数列表);和void 命名空间_类名_release(struct 类名 *);
多态性:类的多态我们使用函数指针来实现。
(未完待续。。。作者还没学多少,学好了再来完善)