第十四周项目一:Animal类(抽象类)
2013-05-31 10:42
232 查看
/* * 程序的版权和版本声明部分 * Copyright (c)2012, 烟台大学计算机学院学生 * All rightsreserved. * 文件名称: Animal.cpp * 作 者:李巧丽 * 完成日期:2013 年5月30日 * 版本号: v1.0 * 对任务及求解方法的描述部分:略 * 输入描述:略 * 问题描述:(1)根据main()函数给出的注释提示,设计出相关的各个类。 (2)显然,Animal设计为抽象类更合适,Animal不需要能够实例化,是专门作基类使用的。 改造程序,使Animal设计为抽象类,这时main()函数中p = new Animal();将出错,将此行删除。 (3)每一个Animal的派生类都有一个“名字”数据成员,改造上面的程序, 将这一数据成员作为抽象类Animal数据成员被各派生类使用。 */ #include <iostream> #include<string> using namespace std; class Animal { public: virtual void cry()=0; // { // cout<<"不知哪种动物,让我如何学叫?"<<endl; // } }; class Mouse:public Animal { public: virtual void cry() { cout<<"我叫"<<name<<",是一只"<<((sex=='m')?"男":"女")<<"老鼠,我的叫声是:吱吱吱!"<<endl; } Mouse(string nam,char s) { name=nam; sex=s; } private: string name; char sex; }; class Cat:public Animal { public: virtual void cry() { cout<<"我叫Tom,是一只猫,我的叫声是:喵喵喵!"<<endl; } Cat(string nam) { name=nam; } private: string name; }; class Dog:public Animal { public: virtual void cry() { cout<<"我叫Droopy,是一条狗,我的叫声是:汪汪汪!"<<endl; } Dog(string nam) { name=nam; } private: string name; }; class Giraffe :public Animal { public: virtual void cry() { cout<<"我叫"<<name<<",是一只"<<((sex=='m')?"男":"女")<<"长颈鹿,我的脖子太长,发不出声音来!"<<endl; } Giraffe (string nam,char s) { name=nam; sex=s; } private: string name; char sex; }; 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; }
运行结果:
相关文章推荐
- 第十四周——项目3 立体类族共有的抽象类
- 第十四周项目3-立体类族共有的抽象类
- 第十四周 【项目1-动物这样叫】下面是给出的基类Animal声明和main()函数。
- 第十四周 项目一:动物怎么叫?(抽象类)
- 第十四周项目三----抽象类
- 第十四周--项目1-Animal
- 第十四周项目一:Animal类(修改1)
- 第十四周上机实践项目——立体类族共有的抽象类
- 第十三周 项目一(2)Animal 设计为抽象类
- 第十四周 项目二:定义抽象类Shape,由此派生出Circle(圆形)、Rectangle(矩形)、Triangle(三角形)
- 第十四周项目3-立体类族共有的抽象类
- 第十四周项目三——抽象类CSolid
- 第十四周 【项目3-立体类族共有的抽象类】
- 第十四周 项目3-立体类族共有的抽象类
- 第十三周 项目一 (3)Animal 抽象类加入名字。
- 第十四周 项目三:定义抽象类CSolid,含有表面积及体积的纯虚数,派生出CCube,CBall,CCylinder,分别表示正方体、球体及圆柱体
- 第十四周项目三:抽象类CSolid
- 第十四周项目四立体类族共有的抽象类
- 第十四周上机项目3.1
- 第14周-项目1-Animal