2013级C++第14周(春)项目——多态性、虚函数和抽象类 【项目1-动物这样叫】

来源:互联网 发布:java怎么用session 编辑:程序博客网 时间:2024/06/04 00:04
/** 程序的版权和版本声明部分* Copyright (c)2014, 在校学生* All rightsreserved.* 文件名称: 1.cpp* 作    者:  刘旺* 完成日期:2014年6月3日* 版本号: v1.0* 输入描述:无* 问题描述: 根据给出的main()函数和运行结果的提示,设计出相关的各个类,             注意观察运行结果,提取出每个类中需要的数据成员,并匹配上需要的成员函数。*/#include <iostream>#include <cstring>using namespace std ;class Animal{public:  virtual void cry()    {      cout<<"不知哪种动物,让我如何学叫?"<<endl;    }};class Mouse:public Animal{public:    Mouse(char *nam,char y){         strcpy(name,nam) ;         x = y ;    }    void cry(){         cout << "我叫"<< name ;         if(x=='m'){            cout << ",是一只男老鼠," ;         }         else{            cout << ",是一只女老鼠," ;         }         cout << "我的叫声:是吱吱吱" << endl ;    }private:    char name[20] ;    char x ;};class Cat:public Animal{public:     Cat(char *nam){         strcpy(name,nam) ;     }     void cry(){        cout << "我叫" << name << ",是一只猫,"<< "我的叫声是喵喵喵" << endl ;     }private :    char name[20] ;};class Dog:public Animal{public:    Dog(char *nam){        strcpy(name,nam) ;    }    void cry(){       cout << "我叫" << name << ",我的叫声是汪汪汪" << endl ;    }private:    char name[20] ;};class Giraffe:public Animal{public:    Giraffe(char *nam, char x1){         strcpy(name,nam) ;         x = x1 ;    }    void cry(){      cout <<"我叫" << name ;      if(x=='m'){        cout << ",是男长颈鹿" ;      }else{         cout << ",是女长颈鹿" ;      }      cout << "我的脖子太长,发不出来声音来!" ;    }private:     char name[20] ;     char x ;};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
原创粉丝点击