1、构造属性与方法
struct Animal{
char name[128];
int age;
char six; //成员属性
void (*peat)(); //成员方法
void (*pbeat)();
int (*num)();
};
2、构造类
int mian()
{
struct Animal dog;//构造类
struct Animal cat;
struct Animal person;
}
3、利用函数指针实现面向对象
#include <stdio.h>
#include <stdlib.h>
struct Animal{
char name[128];
int age;
char six; //成员属性
void (*peat)(); //成员方法
void (*pbeat)();
int (*num)();
};
void dog_eat()
{
printf("狗吃屎\n");
}
void cat_eat()
{
printf("猫吃鱼\n");
}
void person_eat()
{
printf("人吃饭\n");
}
void dog_beat()
{
printf("狗的一批\n");
}
void cat_beat()
{
printf("喵喵\n");
}
void person_beat()
{
printf("you are a single dog\n");
}
int dog_num(int a,int b)
{
return a+b;
}
int cat_num(int a,int b)
{
return a*a;
}
int person_num(int a,int b)
{
return a-b;
}
int main()
{
struct Animal dog={
.peat=dog_eat,
.pbeat=dog_beat,
.num=dog_num
}; //成员类
struct Animal cat={
.peat=cat_eat,
.pbeat=cat_beat,
.num=cat_num
};
struct Animal person={
.peat=person_eat,
.pbeat=person_beat,
.num=person_num
};
dog.peat();
cat.peat();
person.peat();
dog.pbeat();
cat.pbeat();
person.pbeat();
int ret=dog.num(1,2);
int cmd=cat.num(3,4);
int txc=person.num(6,1);
printf("ret=%d\n",ret);
printf("cat=%d\n",cmd);
printf("person=%d\n",txc);
return 0;
}