2015-第十三周课后自主-动物怎么叫:虚函数

来源:互联网 发布:如何理解数组的概念 编辑:程序博客网 时间:2024/04/29 04:18

#include <iostream>#include <string>using namespace std;class Animal{public:  virtual void cry()    {      cout<<"What the animals say? :)"<<endl;    }};class Mouse : public Animal{private:    string name;    char sex;public:    Mouse(string n, char s) : name(n), sex(s){}    virtual void cry()    {        cout << "I am " << name << ", a" << ((sex == 'm')?" male ":" female ") << "mouse. My cry is zhizhizhi.\n";    }};class Cat : public Animal{private:    string name;public:    Cat(string n) : name(n){}    virtual void cry()    {        cout << "I am " << name << ", a" << " cat. My cry is miaomiaomiao\n";    }};class Dog : public Animal{private:    string name;public:    Dog(string n) : name(n){}    virtual void cry()    {        cout << "I am " << name << ", a" << " dog. My cry is wangwangwang\n";    }};class Giraffe : public Animal{private:    string name;    char sex;public:    Giraffe(string n, char s) : name(n), sex(s){}    virtual void cry()    {        cout << "I am " << name << ", a" << ((sex == 'm')?" male ":" female ") << " giraffe. I can't cry because my long neck.\n";    }};int main( ){    Animal *p;    p = new Animal();    p->cry();    Mouse m1("Jerry",'m');    p=&m1;    p->cry();    Mouse m2("Jemmy",'f');    p=&m2;    p->cry();    Cat c1("Tom");    p=&c1;    p->cry();    Dog d1("Droopy");    p=&d1;    p->cry();    Giraffe g1("Gill",'m');    p=&g1;    p->cry();    return 0;}


运行结果




0 0