16级C++课程设计 第三题

来源:互联网 发布:智能手表有什么用 知乎 编辑:程序博客网 时间:2024/04/26 20:14

3.(所有同学完成)要求:
设计抽象类:鸟类。虚函数为void fly();
派生类:麻雀类、鸽子类、乌鸦类。
在派生类中实现虚函数void fly(),函数内容输出鸟类名称+飞行。如麻雀类的fly函数内容为,输出如下字符串“麻雀飞行”;。
设计一个调用虚函数的函数,该函数的参数类型为鸟类的引用类型,并在主函数中调用该函数,主函数实参分别是一个麻雀类、鸽子类、乌鸦类对象。


#include <iostream>#include <string>#include <vector>using namespace std;class bird{public:    virtual void fly() = 0;};class maque :public bird{public:    virtual void fly()    {        cout << "麻雀飞不动" << endl;    };};class gezi :public bird{public:    virtual void fly()    {        cout << "鸽子飞不动" << endl;    };};class wuya :public bird{public:    virtual void fly()    {        cout << "乌鸦飞不动" << endl;    };};void fei(maque a, gezi b, wuya c){    bird *p;    p = &a;    p->fly();    p = &b;    p->fly();    p = &c;    p->fly();}int main(){    maque a;    gezi b;    wuya c;    fei(a, b, c);    return 0;}