设为首页 加入收藏

TOP

用C实现面向对象(三)
2015-03-19 03:34:48 来源: 作者: 【 】 浏览:293
Tags:实现 面向 对象
p, 10, 20);
draw(p);
cdelete(p);
}
return 0;
}


/***********************************
* 测试结果:
*
* Point_New self = 0x50a1d8
* call Circle_New self =0x50a1d8
* Circle_Draw at 1,2 rad 3
* call move self =0x50a1d8
* Circle_Draw at 11,22 rad 3
* call Circle_Delete self =0x50a1d8
*
* Point_New self = 0x5096a0
* Point_Draw at 1,2
* call move self =0x5096a0
* Point_Draw at 11,22
* call Point_Delete self =0x5096a0
*
************************************/


五、多态


可以是用C语言中的万能指针void* 实现多态,接上面的例子:


//测试main.c

int oo_main(int argc, char ** argv) {
void * p;
int i;
for (i = 0; i < 2; i++) {
if (i == 0) {
p = cnew(Circle, 1, 2, 3);
circle_area(p);
} else {
p = cnew(Point, 1, 2);
}
draw(p);
move(p, 10, 20);
draw(p);
cdelete(p);
}
return 0;
}


六、总结


C语言能够模拟实现面向对象语言具有的特性,包括:多态,继承,封装等,现在很多开源软件都了用C语言实现了这几个特性,包括大型开源 数据库 系统postgreSQL,可移植的C语言面向对象框架GObject,无线二进制运行环境BREW。采用C语言实现多态,继承,封装,能够让软件有更好的可读性,可扩展性。

?

?

首页 上一页 1 2 3 下一页 尾页 3/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇算法-冒泡排序和快速排序(Object-.. 下一篇C语言实现捞鱼问题

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: