C语言模式实现C++继承和多态

来源:互联网 发布:大数据分析师工资 编辑:程序博客网 时间:2024/05/17 02:11
//C++中的继承与多态//C++中的多态可以通过虚函数来实现class A{public:   //基类函数为虚函数,必须加关键字virtul    virtual void fun()    {        cout << "A:fun()" << endl;    }    int a;};class B :public A{public:    //子类里的virtual可有可无     void fun()    {        cout << "B:fun()" << endl;    }    int b;};
void test(){    A a;//定义一个父类对象    B b;//定义一个子类对象    A *p1 = &a;//定义一个指向父类对象的父类指针    p1->fun();//用该指针调用父类函数    p1 = &b;//让父类指针指向子类对象    p1->fun();//用该指针调用子类对象}

测试结果:
这里写图片描述

//C语言模拟实现C++继承与多态typedef void(*Fun)();//定义一个函数指针struct AA//父类{    Fun fun;//因为C语言中结构体中不能定义函数    int a;};struct BB//父类{    AA _a;    int b;};void fa(){    printf("AA:fun()\n");}void fb(){    printf("BB:fun()\n");}
void test(){    AA a;//定义一个父类对象    BB b;//定义一个子类对象    a.fun = fa;//父类对象调用父类函数    b._a.fun = fb;//子类对象调用子类函数    AA *p1 = &a;//定义一个指向父类对象的父类指针    p1->fun();//让该指针调用父类函数    p1 = (AA*)&b;//让父类指针指向子类对象    p1->fun();//让该指针指向子类函数}

测试结果
这里写图片描述

原创粉丝点击