6,3 动物的叫声 virtual
题目要求:
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 dragon: public Animal
{
private :
string name;
public:
dragon (string nam) :name(nam) {}
virtual void cry ()
{
cout<<"我叫"<<name<<",是一条"<<"龙,我的叫声是:吼吼吼!"<<endl;
}
};
int main()
{
Animal *p;
p = new Animal();
p->cry(); //输出: 不知哪种动物,让我如何学叫?
mouse m1("Jerry",'m');
p=&m1;
p->cry(); //输出: 我叫Jerry,是一只男老鼠,我的叫声是:吱吱吱!
mouse m2("Jemmy",'f');
p=&m2;
p->cry(); //输出: 我叫Jemmy,是一只女老鼠,我的叫声是:吱吱吱!
cat c1("Tom");
p=&c1;
p->cry(); //输出: 我叫Tom,是一只猫猫,我的叫声是:喵喵喵!
dog d1("Droopy");
p=&d1;
p->cry(); //输出: 我叫Droopy,是一条狗狗,我的叫声是:汪汪汪!
dragon d2("long");
p=&d2;
p-> cry(); //输出: 我叫long,是一条龙,我的叫声是:吼吼吼
return 0;
}
6,3 动物的叫声 virtual相关推荐
- 【Java】设计一个动物声音“模拟器”,希望模拟器可以模拟许多动物的叫声。
题目要求:设计一个动物声音"模拟器",希望模拟器可以模拟许多动物的叫声.要求如下: (1)编写抽象类Animal Animal抽象类有2个抽象方法cry()和getAnimaNam ...
- 设计一个动物声音“模拟器”,希望模拟器可以模拟许多动物的叫声。要求如下:
设计一个动物声音"模拟器",希望模拟器可以模拟许多动物的叫声.要求如下: (1)编写抽象类Animal Animal抽象类有2个抽象方法cry()和getAnimaName(),即 ...
- 日语中动物的叫声是怎样的-狗子怎么叫的
在日文中动物的一些叫声是怎么样的,用日文怎么形容呢 动物的叫声(动物の鸣き声) 大象(ぞう):パオーンパオーン paon paon 猴子(さる):ウキーキー uki kii 熊(くま):ガオー ...
- Java练习 | 设计一个动物声音“模拟器”,希望模拟器可以模拟许多动物的叫声(附代码)
问题:设计一个动物声音"模拟器",希望模拟器可以模拟许多动物的叫声. 要求如下: 编写抽象类Animal Animal抽象类有2个抽象方法cry()和getAnimaName(), ...
- 设计一个动物声音模拟器,希望模拟器可以模拟许多动物的叫声
设计一个动物声音模拟器,希望模拟器可以模拟许多动物的叫声,要求如下: 1.编写抽象类Animal Aminal抽象类有两个抽象方法cry()和getAnimalName(),即要求各种具体的动物给出自 ...
- 动物声音模拟器, 模仿许多动物的叫声
动物声音模拟器, 模仿许多动物的叫声 package 动物模拟器;public class Simulator {void playSound(Animal animal){System.out.pr ...
- Java实验之设计一个动物声音“模拟器”,希望模拟器可以模拟许多动物的叫声
编写抽象类Animal Animal抽象类有两个抽象方法cry()和getAnimalName(),即要求各种具体的动物给出自己的叫声和种类名称 编写模拟器类Simulator 该类有一个playSo ...
- java 2 实用教程(第五版)第六章课后编程题:设计一个动物声音模拟器,希望模拟器可以模拟许多的动物的叫声。
内容:1.编写接口Animal Animal接口有两个抽象方法:cry()和getAnimalName(),即要求实现该接口的各种具体动物类给出自己的叫声和种类名称. 2.编写模拟器类Simulato ...
- 设计一个动物声音“模拟器”,希望模拟器可以模拟许多动物的叫声
编写抽象类Animal : Animal抽象类有2个抽象方法cry()和getAnimaName(),即要求各种具体的动物给出自己的叫声和种类名称. 编写模拟器类Simulator: 该类有一个pla ...
最新文章
- 日志分析工具 LogParser
- 用WORD2010写博客,并发送至博客园
- Windows中使用PowerShell+任务计划程序实现Mysql数据之间的同步
- supervisor linux下进程管理工具
- pcre安装_Nginx | Nginx的介绍和安装
- kaggle数据挖掘竞赛Home Credit Default Risk讲解
- 获取文件夹下所有文件名(window+linux)
- Math类的常用方法
- 虚拟机Windows xp联网
- Epicor ERP
- 玩转Python第三方库库tqdm
- Kafka eagel 网页能打开,但是登录不上
- 如何才能将企业现有的组织关系集成到jbpm中?
- 计算机如果没有什么 就无法启动,电脑开机没有任何反应
- 58同城2014校园招聘笔试题
- nginx根据ip限流和突发流量配置解释
- java.lang.UnsatisfiedLinkError: dlopen failed: file offset for the library /data/app/com.beiya.litt
- 毕业答辩PPT制作和讲述要点
- scanner.nextline()中文输入时遇到的问题
- VS2013+OBS开发
热门文章
- 人生经典定律[收藏] 1
- Volatile重排序规则的一些理解
- stm32的timer-trgo + DMA + DAC 播放WAV格式音乐
- 小区门禁卡可以复制到手机上吗_没有门禁卡怎么开门 门禁卡可以复制到手机里吗...
- 【IDEA 教程系列第 6 篇】idea 快速定位到某一行
- Fortran写nc文件nbsp;f90nbsp;netcdf
- 如何用Python处理自然语言?(Spacy与Word Embedding)
- 第一部分 Rx快速入门
- 什么是VPS? 它是如何用于自动驾驶的?
- eclipse打断点无效,代码进不去断点,断点只是一个圆点,没有对勾的处理方案