简单模拟下c语言实现继承与多态
typedef void(*FUN)();//函数指针
struct A
{
int a;
int b;
FUN fun;
};
struct B
{
A _a;//B继承A
};
void fA()
{
cout << "A" << endl;
}
void fB()
{
cout << "B" << endl;
}
int main()
{
//将A中的函数指针和B继承的A的函数指针分别指向自己所要实现的函数,所以指针指向那个对象,通过函数指针调用时就调的是自己的函数,自己函数指针已经与自己的函数绑定。
A a;
B b;//分别定对象
a.fun = fA;//将自己的函数指针指向自己的函数
b._a.fun = fB;
A* p = &a;//p指向a,就调用的是A的函数
p->fun();
p = (A*)&b;//指向B。调用B
p->fun();
system("pause");
return 0;
}