您的位置:首页 > 编程语言 > C语言/C++

如何用C语言实现面向对象

2016-07-20 19:11 274 查看
C语言是一种结构化的编程语言,以模块化功能和处理过程设计为主,从而实现数据与代码分隔。面向对象的编程语言,核心是类,类用来创造对象的模板,类的三要素为:封装,继承,多态。C语言本身对面向对象的支持很弱,但可以通过一些技巧来实现,从面向对象的思想上找一些对应的实现方法。

面向对象:             C语言:

类的实现    ————     结构体

封装性
    ————     一个功能一个程序

多态性
    ————     函数指针

类的实现:在C语言的语法中结构体struct和类的表述最为接近。我们可以根据面向对象的思想抽象出具体事物来作为结构体struct的成员变量。

封装性:将一个函数功能写在一个.c文件里。//一个文件实现一个类,类名与文件名相同,以一个文件作为基本的编程单元。在C语言的中,我们把头文件和实现文件名以(命名空间_类名)的形式命名。然后在这个文件中定义类的struct结构体,结构体名为命名空间_类名,然后抽象出类的属性作为成员变量。然后在这个文件中定义类的方法,方法的命名规则为"命名空间_类名
_动词_名词"的形式,命名空间类似java的包名或是c++的namespace注意命名空间不用像java一样写那么长的包名,自己酌情设置,方法的第一个参数为struct结构体的指针。对于公共方法和变量在头文件中声明并用extern关键则修饰,对于私有方法和变量使用static关键字修饰,但不要在头文件中声明。对于保护变量因为暂时没找到相应的实现,暂时用公共方法和变量的方法来实现以后找到后会补充。对于类的构造函数和解析函数,我们使用定义额外两个函数表示:struct 类名 * 命名空间_类名_creat(参数列表);和void
命名空间_类名_release(struct 类名 *);

多态性:类的多态我们使用函数指针来实现。

(未完待续。。。作者还没学多少,学好了再来完善)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息