利用C语言实现多态:
c语言多态的实现,需要用到函数指针。函数名实际上是该函数代码存储空间的首地址,这个地址可以通过函数指针来存放。通过改变函数指针存储的地址就可以实现多态。
typedef void(*FUN)();
struct Base
{
FUN _f;
};
struct Derived
{
Base _b;
};
void FunB()
{
printf("%s\n", "Base::fun()");
}
void FunD()
{
printf("%s\n", "Derived::fun()");
}
void Test2()
{
Base b;
Derived d;
b._f = FunB;
d._b._f = FunD;
Base *pb = &b;
pb->_f();
pb = (Base *)&d;
pb->_f();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)