读书人

用C语言兑现面向对象程序设计(二)

发布时间: 2013-01-26 13:47:03 作者: rapoo

用C语言实现面向对象程序设计(二)

上集对OOSM宏包及其应用作了直观的介绍,下面我们来看看ccirc/crect/csqua等对象具体的描述方式。

接口(interface)对行为进行抽象,利用它可以实现类的多态性,imeas.h定义了一个测量周长和面积的接口:

#include "ccirc.h"#define PI  (3.1415926)static double peri(void* this){    return 2 * PI * ((ccirc*)this)->radius;}static double area(void* this){    return PI * ((ccirc*)this)->radius * ((ccirc*)this)->radius;}static double diam(ccirc* this){    return 2 * this->radius;}constructor(ccirc){    mapping(imeas.peri, peri);    mapping(imeas.area, area);    mapping(diam, diam);}destructor(ccirc){    return 1;   /* Returns 1 for freeing the memory */}
圆形类在实现imeas接口的基础上,另有自己的diam方法,注意自己本身方法直接映射即可。

读书人网 >C语言

热点推荐