用C语言实现面向对象程序设计(三)
来源:互联网 发布:重庆邮电大学人工智能 编辑:程序博客网 时间:2024/06/17 16:55
面向对象中的继承又是如何处理的呢,下面来看看方形类的具体描述方式:
#ifndef __CSQUA_H__#define __CSQUA_H__#include "crect.h"/* Square Class, inherits from Rectangle, for describing square objects */class(csqua){ extends(crect); /* Inherits from crect class */};#endif/*__CSQUA_H__*/
csqua.h中csqua类直接从crect类继承(extends),方形对于矩形来说,是其width和height相等的特例。
#include "csqua.h"static double peri(void* this){ return 4 * ((crect*)this)->width;}static double area(void* this){ return ((crect*)this)->width * ((crect*)this)->width;}constructor(csqua){ mapping(crect.imeas.peri, peri); mapping(crect.imeas.area, area);}destructor(csqua){ return 1; /* Returns 1 for freeing the memory */}csqua.c中注意width是矩形的属性,因此this指针实际是crect*型的。
至此,OOSM宏包加上一个简单完整的示例都已经介绍完毕,从这里可以看出面向对象是一种思想,而不是某种语言的专利。当然由于C语言本身是面向过程的,所以它无法实现private/public/protect等界限,也无法隐藏this指针,导致形式上会有c->diam(c)这样比较不自然的写法,另外继承不宜过深。
- 用C语言实现面向对象程序设计(三)
- 用C语言实现面向对象程序设计(一)
- 用C语言实现面向对象程序设计(二)
- 用C语言实现面向对象编程
- 用C语言实现面向对象
- 用 C 语言实现面向对象编程
- 用C语言实现面向对象
- 用 C 语言实现面向对象编程
- c语言实现面向对象
- C语言实现面向对象
- C语言实现面向对象
- C语言实现面向对象
- C语言实现面向对象
- C语言实现面向对象
- C语言实现面向对象
- C语言实现面向对象
- 面向对象程序设计(三)
- C 面向对象程序设计
- tcgetattr函数的说明
- Flex内阴影实现
- 探讨Ilist<>与List<>
- Mongo官方文档翻译 (四)
- 深入解析MFC -- 句柄与对象的关系
- 用C语言实现面向对象程序设计(三)
- Struts1中动态actionForm的配置
- ViewPager实现左右循环滑动
- Mongo官方文档翻译 (五)
- Android下信号强度显示和信号刷新时间
- unity3d 加载进度条
- 使用 getopt() 进行命令行处理
- birdeye 绘制拓扑关系图
- http://www.open-open.com/doc/view/cc96833515f942faa61361aea301bae4