第十三周项目一(三)
来源:互联网 发布:手机淘宝详情图片尺寸 编辑:程序博客网 时间:2024/06/05 01:08
3、每一个Animal的派生类都有一个“名字”数据成员,这个成员设置为基类Animal的成员更好。改造上面的程序,将“名字”成员作为抽象类Animal数据成员被各派生类使用。
#include <iostream>using namespace std;class Animal{public: Animal(string nam):name(nam){}; virtual void cry()=0;protected: string name;};class Mouse: public Animal{public: Mouse(string nam,char s):Animal(nam),sex(s){} virtual void cry();protected: string name; char sex;};void Mouse::cry(){ cout<<"我叫"<<name<<","; if(sex=='m') cout<<"我是一只男老鼠,"; else cout<<"我是一只女老鼠,"; cout<<"我的叫声是:吱吱吱!"<<endl;}class Cat: public Animal{public: Cat(string nam):Animal(nam){}; virtual void cry();protected: string name;};void Cat::cry(){ cout<<"我叫:"<<name<<",是一只猫,我的叫声是:喵喵喵!"<<endl;}class Dog: public Animal{public: Dog(string nam):Animal(nam){}; virtual void cry();protected: string name;};void Dog::cry(){ cout<<"我叫:"<<name<<",是一只狗,我的叫声是:汪汪汪!"<<endl;}class Giraffe :public Animal{public: Giraffe(string nam,char s):Animal(nam),sex(s){}; virtual void cry();protected: string name; char sex;};void Giraffe::cry(){ cout<<"我叫:"<<name<<",是"<<((sex=='m')?"男":"女")<<"长颈鹿,我的脖子太长,发不出声音来!"<<endl;}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
- 第十三周项目一(三)
- 第十三周项目一:数组大折腾(三)
- 第十三周项目一(3):三的倍数
- 第十三周项目三
- 第十三周项目三
- 第十三周项目三
- 第十三周项目三
- 第十三周项目三
- 第十三周项目三
- 第十三周项目一
- 第十三周项目一
- 第十三周项目一:
- 第十三周项目一
- 第十三周 项目一
- 第十三周项目一
- 第十三周项目一
- 第十三周项目一
- 第十三周项目一
- 第十三周项目一(二)
- maven学习-02
- mark-java 正则表达式
- jquey easyui 常用方法
- Searching: Tree Search And Insertion
- 第十三周项目一(三)
- BUBBLESORT: INTRODUCTION TO ALGORITHMS
- 未言心相醉,不再接杯酒。
- hdu5246---超级赛亚ACMer(贪心)
- ping python源码
- 落地为兄弟,何必骨肉亲
- Android中的软件安全和逆向分析[一]—apk反编译破解以及java汇编代码读写
- 云无心以出岫,鸟倦飞而知还。
- hdu5248---序列变换(二分答案+贪心)