最近在开发浏览器,编程语言是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