第13周项目1-动物这样叫(1)
2015-06-03 08:23
204 查看
/* * Copyright (c) 2015, 烟台大学计算机学院 * All rights reserved. * 文件名称:test.cpp * 作 者:王元阳 * 完成日期:2015 年 6 月 3 日 * 版 本 号:v1.0 *问题描述:1、根据给出的main()函数和运行结果的提示,设计出相关的各个类,注意观察运行结果,提取出每个类中需要的数据成员,并匹配上需要的成员函数。 2、显然,Animal设计为抽象类更合适,Animal不需要能够实例化,是专门作基类使用的。改造程序,使Animal设计为抽象类,这时main()函数中p = new Animal();将出错,将此行删除。 3、每一个Animal的派生类都有一个“名字”数据成员,这个成员设置为基类Animal的成员更好。改造上面的程序,将“名字”成员作为抽象类Animal数据成员被各派生类使用。 */ #include <iostream> using namespace std; class Animal { public: virtual void cry() { cout<<"不知哪种动物,让我如何学叫?"<<endl; } }; class Mouse:public Animal { private: string name; char sex; public: Mouse(string nam,char s):name(nam),sex(s){} virtual void cry() { cout<<"我叫"<<name<<",是一只"<<((sex=='m')?"男":"女")<<"老鼠,我的叫声是:吱吱吱!"<<endl; } }; class Cat:public Animal { private: string name; public: Cat(string nam):name(nam){} virtual void cry() { cout<<"我叫"<<name<<",是一只猫,我的叫声是:喵喵喵!"<<endl; } }; class Dog:public Animal { private: string name; public: Dog(string nam):name(nam){} virtual void cry() { cout<<"我叫"<<name<<",是一条狗,我的叫声:是汪汪汪!"<<endl; } }; class Giraffe:public Animal { private: string name; char sex; public: Giraffe(string nam,char s):name(nam),sex(s){} virtual void 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; }
相关文章推荐
- 搭建CA服务器
- 搭建CA服务器
- Python介绍、环境搭建(Eclipse插件)、第一个程序
- 第十三周项目1——动物这样叫(3)
- Python介绍、环境搭建(Eclipse插件)、第一个程序
- 第十周项目 4 点、圆的关系(1)
- 抽象类和接口的详解
- C++之我是二代我继承——教师干部
- Nim教程翻译(一)
- 腾迅股票数据接口 http/javascript .
- 第十三周项目1动物如何叫
- 第13周 补充阅读-链表类1
- word页码页眉目录,excel字段操作
- 第十一周项目教师兼干部类
- 第十三周【项目1-动物这样叫】
- C++刷题——2707: 素数与因子
- 第十三周项目1-1:动物这样叫-虚函数
- 【九章算法免费讲座第一期】转专业找CS工作的“打狗棒法”
- 开源旧事:Linux为什么能成功?
- 第十三周阅读程序三