7-1 动物爱吃什么 (10分)

1.设计一个基类动物类(animal),包含private数据成员:动物编号int num;和动物名称string name;public成员函数:getnum( )用于获取其编号, getname( )用于获取其名称和一个纯虚函数eat( ),以及构造函数。

2.由animal类派生出狗类Dog和猫类Cat,每个类中均有自己的构造函数,根据输出结果设计这两个类并在主函数中完成设计类的输出测试

3.要求在主函数中必须使用基类指针调用虚函数eat( ).

输入格式:

输入两行,每一行分别是动物编号num和动物名称name,中间空格分隔。

输出格式:

输出两行,每一行显示动物编号num、动物名称name和爱吃的食物。

输入样例:

在这里给出一组输入。例如:

1 金毛
2 波斯

输出样例:

在这里给出相应的输出。例如:

1号金毛啃骨头
2号波斯吃小鱼

代码实现:

​#include<iostream>//该题考查多态的使用
#include<cstring>//先按照题目要求写出相关的函数和类
using namespace std;
class Animal{private:int num;string name;public:Animal(int n,string m):num(n),name(m){ }Animal(){}int getnum()//由于他们是私有的,但是这不妨碍我们通过成员函数来访问他们 {//由此可见,类的私有成员可以通过这样访问 return num;}string getname(){return name;}virtual void eat(){ }//virtual void eat()=0;不建议这样写因为如果这样写的话就是抽象类了,//抽象类只能作为基类来派生新类使用,不能创建抽象类的对象
};
class Dog:public Animal
{public:virtual void eat()//其实不用写那个virtual也是对的 {cout<<Animal::getnum()<<"号"<<Animal::getname()<<"啃骨头"<<endl; }//这里的Animal是派生类调用基类的getnum()函数的一种形式,基类名::函数名 Dog(int n,string m):Animal(n,m)//析构函数,用来初始化。对应下面的 {}
};
class Cat:public Animal{public:virtual void eat()//和上面的类似 {cout<<Animal::getnum()<<"号"<<Animal::getname()<<"吃小鱼"<<endl; }Cat(int n,string m):Animal(n,m){}
};
int main()
{int num1,num2;//先定义后使用 string name1,name2;cin>>num1>>name1;cin>>num2>>name2;Dog b(num1,name1);//让类的相关数据初始化 Cat c(num2,name2);Animal *p;p=&b;//让基类指针指向派生类对象, p->eat();//多态,派生类的eat()函数被调用 p=&c;p->eat();return 0;}​

以上均为个人的小看法,如有错误,欢迎来指正。


c++练习题,动物爱吃什么相关推荐

  1. 7-2 动物爱吃什么?

    7-2 动物爱吃什么 1.设计一个基类动物类(animal),包含private数据成员: 动物编号int num;和动物名称string name:public成员函数:getnum( )用于获取其 ...

  2. PTA:动物爱吃什么(c++,继承)

    1.设计一个基类动物类(animal),包含private数据成员:动物编号int num;和动物名称string name:public成员函数:getnum( )用于获取其编号, getname( ...

  3. 《社会动物——爱、性格和成就的潜在根源》读后感及摘录(1)

    <社会动物--爱.性格和成就的潜在根源>读后感        这本书可以说是一本学术性质的心理学书籍.之所以又不单单是单纯的心理学书籍,也不算是单纯的学术呢?因为这本书是以小说的形式组织的 ...

  4. 螃蟹不能吃的四个部位,爱吃螃蟹的一定要进来看看。

    在网上看到的文章. 仔细一看吓一跳,美味的螃蟹不能吃的地方还不少. 我只知其一,其二.其三.其四一概不知. 这些年吃了不少脏东西竟然没事,看来我身体排毒能力不错. 转发给和我一样爱吃螃蟹的版友,下次吃 ...

  5. 中国小孩为何普遍爱吃洋快餐?[转]

    洋快餐被人称之为垃圾食品,经常食用对身体不好.这个道理很浅显谁都知道,但照样挡不住洋快餐在中国受到广大小孩乃至成年人的热捧.洋快餐真的有那么好吃吗?其实洋快餐在中国走红,赚得钵盈盆满,不是因其营养价值 ...

  6. 18. 爱吃皮蛋的小明(斐波那契数列)

    时间限制: 1 s 空间限制: 32000 KB 题目等级 : 白银 Silver 题解 题目描述 Description 小明特别爱吃蛋,特别是皮蛋.他一次可以吃一个蛋或者两个蛋(整个吞下去),而且 ...

  7. OSChina 周三乱弹 ——我就爱吃月饼,就爱抢月饼。我高兴。

    2019独角兽企业重金招聘Python工程师标准>>> @巴拉迪维:张敬轩<吻得太逼真>. 巴叔是麦霸, 爱上了乱弹点歌. 吻得太逼真 - 张敬轩 手机党少年们想听歌,请 ...

  8. 青梅酒太多不知该怎么选?记得你爱吃 的口味就可以

    青梅酒的口味非常多,许多的朋友都不知道怎么选择,小编整理了一下,其实大家只需要记住自己的饮食习惯酒,再了解一下青梅酒的知识,就能选对了 喝酒的朋友应该都有过相同的经历,那就是花了许多的时间了解清楚了各 ...

  9. 美国名校为何青睐爱吃泡面的考生

    美国名校为何青睐爱吃泡面的考生?福州一中有位姓王的高三男生因为爱吃泡面,被美国名校罗切斯特大学录取了.录取通知书中写道:在得知你对拉面的狂热以后,辅导员推荐了你,委员会和我都确信你会坚持到底,并且能作 ...

最新文章

  1. MongoDB指定类型查询数据
  2. SQL时间格式转换CONVERT_GETDATE()
  3. python 拆分excel openpyxl_openpyxl(python操作Excel)
  4. eclipsejvm内存不足_Eclipse无法调试及编译时内存不足的解决
  5. 使用集合映射和关联关系映射_使用R进行基因ID映射
  6. python2处理耗时任务_RabbitMQ Go客户端教程2——任务队列/工作队列
  7. 单列布局、两列布局、三列布局
  8. SQL Server 将在下一个版本实现内存中运行
  9. linux ip协议栈 漏洞,【漏洞预警】雪藏11年:Linux kernel DCCP double-free 权限提升漏洞(CVE-2017-6074)...
  10. N76E003的学习之路(一)
  11. 视频编码方案之间的比较(HEVC,H.264,MPEG2等)
  12. Lua5.1 升级 Lua5.3 升级 小结
  13. 在ARM板上运行Qt程序
  14. wifi可以连接但是上不了网该怎么解决?
  15. 香港服务器防攻击能力怎么样
  16. 键盘定位板图纸_看看199的机械键盘可以有多酷
  17. 星浩资本-以流程为中心
  18. 东方幻想乡/BadApple!!
  19. python数据获取及预处理_Python小练习——电影数据集TMDB预处理
  20. JVM学习(三)JVM内存模型

热门文章

  1. Docker Jenkins测试邮箱通知报错:553 Mail from must equal authorized user
  2. Excel学习笔记——基础篇
  3. Dilworth定理的简单应用(导弹拦截题解)
  4. tif批量转png格式 python
  5. 如何在三天内使用Thinkphp搭建商城系统(一)
  6. Ubuntu查看一些版本 1
  7. vue数组中添加新字段,改变字段后值没有比变化
  8. Android的六大基本布局
  9. 数字序列 Number Sequence
  10. 基于嵌入式linux的freetype矢量字体简单显示的实现