c语言模拟实现c++的继承和多态

来源:互联网 发布:疯狂淘宝李涛微博 编辑:程序博客网 时间:2024/06/05 02:56

因为c++的继承和多态是面向对象的,需要用类实现,而c语言没有类,所以就只能选择结构体。但是结构体中不能定义函数,所以可以使用函数指针来实现c++的成员函数。

typedef void (*FUN)();struct A{    FUN fun;    int a;};struct B{    A _a;    int b;};void fA()       {    cout<<"A:fun()"<<endl;}void fB()       {    cout<<"B:fun()"<<endl;}void FunTest(){    A a;    B b;    a.fun = fA;    b._a.fun = fB;    A* pa = &a;    pa->a = 2;    pa->fun();    cout<<"A a = "<<pa->a<<endl;    pa = (A*)&b;    pa->a = 3;    pa->fun();    cout<<"B a = "<<pa->a<<endl;}

这里写图片描述

原创粉丝点击