Uploaded by Wigans Cooper

面向对象编程

advertisement
#include "main.h"
#include "Father.h"
int testage;
int testage2;
int main(void)
{
Girl_t Girltest;
Girl_t Girltest2;
GirlArgs(&Girltest);
Girltest.SetAge(33);
testage = Girltest.GetAge();
GirlArgs(&Girltest2);
testage2 = Girltest.GetAge();
while (1)
{
}
}
#include "Father.h"
struct GirlPrivates
{
int Age;
}GirlP;
//全局 this 指针,指向当前操作的对象
static Girl_t *pthis;
//获取私有数据
#define p_Pointer(object) ((struct GirlPrivates *)(object->inner))
int GetAge(void)
{
return p_Pointer(pthis)->Age;
}
void SetAge(int age)
{
p_Pointer(pthis)->Age = age;
}
void GirlArgs(Girl_t *object)
{
pthis = object;
pthis->inner = &GirlP;
pthis->GetAge = GetAge;
pthis->SetAge = SetAge;
}
#ifndef __FATHER_H
#define __FATHER_H
#include "main.h"
typedef struct Girl Girl_t;
typedef struct Girl
{
void *inner;
int (*GetAge)(void);
void (*SetAge)(int age);
}Girl_t;
void GirlArgs(Girl_t *object);
#endif
Download