用C进行面向对象编程 (用C模拟继承,多态)

来源:互联网 发布:北京和隆优化待遇 编辑:程序博客网 时间:2024/06/05 11:20

最近在开发浏览器,编程语言是C。由于DOM明显是有层次结构,如:

 

node <---------------textNode

  /|/

   |

   |

elment

 

用面向过程的C来开发,有点吃力。所以决定牺牲部分性能,用C模拟面向对象的开发,使程序的结构更加清晰一点。

 

要考虑到问题:

1. 如何定义一个类 (包括考虑继承性的问题,如何定义接口,如何定义成员)

2. 对象的创建与销毁 (构造函数,析构函数)

3. 多态 (定义虚接口)

 

花了一天实现了几个相对比较简单的接口,但是对我们的项目组而已,已经足够。

 

 

下面的demo

1. 定义图形类

 

 

2.定义圆类,继承 图形类

 

 

3.

 

执行完打印出

构造函数被调用 argN :2
参数值: 1000 21
this is circle 20 20
this is graphic 400 800
子类成员 10
父类成员 20
析构函数被调用 DCCircle

 

 

总结:

1. 实现了接口的多态

2.实现了数据,接口的继承

3.只能定义堆上的对象,不能定义栈上对象

 

 

实现:

头文件 simCpp.h

源文件 simCpp.c

 

 辅助文件 stringKit.h

原创粉丝点击