//#include "stdafx.h"
/*
描述:纯c模拟类,纯c编写c++类,纯c实现c++类的简单范例,结构模拟类,struct 编写class.
c编写类是实现纯c编写com组件的基础。
*/
#include <stdio.h>
typedef struct _Vtbl
{
void (*AddRef)(struct CObject* obj,int);//所有的函数的第一个参数类似class的隐匿的this指针
void (*Release)(struct CObject* obj);
}Vtbl;//函数指针数组
typedef struct CObject
{
Vtbl vtbl;//函数指针数组指向成员函数
int a;
int b;
}Cobj;//结构模拟类的简单定义
void fun1(Cobj *obj,int count)//成员函数
{
obj->a+=count;
printf("CObject::a=%d/n",obj->a);
}
void fun2(Cobj *obj)//成员函数
{
obj->a--;
printf("CObject::a=%d/n",obj->a);
}
static Vtbl vt={fun1,fun2};//声明一个静态函数指针数组
int main()
{
Cobj obj;//定义对象
obj.vtbl=vt;
obj.a= 10;
obj.vtbl.AddRef(&obj,1);
obj.vtbl.Release(&obj);
return 0;
}
纯C实现c++类
最新推荐文章于 2021-03-07 17:19:28 发布