700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 利用c语言面向对象编程 用C语言程序实现面向对象编程

利用c语言面向对象编程 用C语言程序实现面向对象编程

时间:2023-07-11 17:08:04

相关推荐

利用c语言面向对象编程 用C语言程序实现面向对象编程

【武汉PHP培训】一、类的封装实现:借用高焕堂的宏头文件,类很容易封装为如下的格式1、类的定义,其中

CLASS() 是 lw_oopc_kc.h 中定义的宏#include "lw_oopc_kc.h" CLASS(A)

{ int a; void(*init)(void*,int);

void(*put)(void*);};2、成员函数的实现类的封装实质是用借用 struct 结构体,用函数指针来表示 C

中类的方法(成员函数)。接下来给类 A 的方法写实体函数。

void init_A(void *t,int x)

{ A *cthis = (A*)t;cthis->a = x;} void put_A(void*t)

{ A *cthis = (A*)t;printf(" %d ",cthis->a);}

3、类(结构体)中的函数指针与实现函数的关联 通过下面的宏把类的方法(函数指针)和实现函数关联:CTOR(A)

FUNCTION_SETTING (init, init_A); FUNCTION_SETTING (put,

put_A);END_CTOR 4、对象的定义、构造和初始化如果没有这个连接处理,类(实际是

struct)中的函数指针就没有函数的功能。函数 init_A()是 XXX_A() 的命名模式,是指明 XXX_A()属于 A

类的函数,方便程序的理解和维护。下面就是要构造 类。在 C 中这个工作系统自动调用构造函数实现而在 C

中,这个过程智能显示调用来实现。借助 lw_oopc_kc.h (或"lw_oopc.h")可以利用宏

CLASS_CTOR(class,obj)来将定义的对象进行构造,使之 有数据的同时有方法的功能。实例化一个对象 3 步子如下:A

aa1; // 1、定义对象CLASS_CTOR(A,aa1); //

2、构造对象—使得函数指针和函数关联aa1.init(&aa1, 10); // 3、初始化对象的成员变量,注意要:

&aa1(取地址)

二、C

继承的实现:1、子类的定义:在类的开头借用已经定义的类进行定义一个变量,为了更加明白,表明是继承,增加一个宏定义:#define

INHERIT(BASE) IMPLEMENTS(BASE)

于是以类 B 继承类 A 为例子如下:CLASS(B)

{ INHERIT(A); // 继承 A 类 int b; // 子类的成员 void (*init) (void*,

int x);void (*put) (void*);};2、子类的成员函数实现,为了方便辨别,类 B 的成员函数带后缀

‘_B’void init_B (void*t, int x, int y)

{ B *cthis =

(B*) t;CLASS_CTOR(A, cthis->A); //——继承的基类在这里构造,对象是 cthis->A

cthis->A.init(&cthis->A, x); //——

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。