C++ 虚函数,多态的两个例子

来源:互联网 发布:算法基础第五版答案 编辑:程序博客网 时间:2024/06/06 09:06

例1

#include<iostream>using namespace std;class CWater{public:    virtual void Show() //virtual  虚函数的关键字   (它叫虚函数)    {    }};class CBeer :public CWater{public:    void Show()    {        cout << "Beer" << endl;    }};class CMilk :public CWater{public:    void Show()    {        cout << "Milk" << endl;    }};class CCoco :public CWater{public:    void Show()    {        cout << "Coco" << endl;    }};void Drink(CWater *water){    water->Show();}int main(){    CWater *beer=new CBeer;    Drink(beer);    CWater *milk=new CMilk;    Drink(milk);    CWater *coco=new CCoco;    Drink(coco);    system("pause");    return 0;}

运行结果:
这里写图片描述

例2

#include<iostream>using namespace std;class CPerson{public:    virtual int Get()    {        return 0;    }public:    void Show()    {        cout << "qqqq" << endl;        cout << "wwww" << endl;        cout << "eeee" << endl;        cout << "rrrr" << endl;        cout <<  Get() << endl;    }};class CChina :public CPerson{public:    int Get()    {        return 1;    }};class CJapan :public CPerson{public:    int Get()    {        return 2;    }};class CUsa :public CPerson{public:    int Get()    {        return 3;    }};int main(){    //利用父类的指针,去调用子类中的函数,实现父类指针的多态性;    CPerson *china=new CChina;    china->Show();    CPerson *Japan=new CJapan;    Japan->Show();    CPerson *Usa=new CUsa;    Usa->Show();    system("pause");    return 0;}

运行结果:
这里写图片描述

0 0
原创粉丝点击