慕婉清6462132
C ++离C不远。类是具有指向名为VTable的函数指针表的隐藏指针的结构。Vtable本身是静态的。当类型指向具有相同结构的Vtables但指针指向其他实现时,您将获得多态性。建议将调用逻辑封装在以struct为参数的函数中,以避免代码混乱。您还应该在函数中封装结构实例化和初始化(这相当于C ++构造函数)和删除(C ++中的析构函数)。无论如何这些都是很好的做法。typedef struct{
int (*SomeFunction)(TheClass* this, int i);
void (*OtherFunction)(TheClass* this, char* c);} VTable;typedef struct{
VTable* pVTable;
int member;} TheClass;要调用方法:int CallSomeFunction(TheClass* this, int i){
(this->pVTable->SomeFunction)(this, i);}