C语言实现对象思想
1.结构体定义实现对象
struct _common_obj{
DWORD dwobjtype;
DWORD dwsize;
DWORD (*getobjtype)(_common_obj* lpthis);
DWORD (*getobjsize)(_common_obj* lpthis);
}
2.宏定义实现继承
#define inherit_from_common_obj
DWORD dwobjtype;
DWORD dwsize;
DWORD (*getobjtype)(_common_obj* lpthis);
DWORD (*getobjsize)(_common_obj* lpthis);
继承时:
struct _child_obj{
inherit_from_common_obj
...
}
3.使用强制类型转换实现动态类型(多态)
DWORD getobjname(_common_obj* lpthis)
_child_obj child;
getobjname((_common_obj*)&child);
4.对象机制
C++中的构造函数,析构函数等。
我们的思路:
1:对每个复杂的对象在声明时都要有两个函数,initialize和uninitialize。
2:定义一个全局对象,对所有对象进行管理,objectmanager(维护一个全局列表)。提供createobj和destroyobj函数接口。