c++练习题,动物爱吃什么
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++练习题,动物爱吃什么相关推荐
- 7-2 动物爱吃什么?
7-2 动物爱吃什么 1.设计一个基类动物类(animal),包含private数据成员: 动物编号int num;和动物名称string name:public成员函数:getnum( )用于获取其 ...
- PTA:动物爱吃什么(c++,继承)
1.设计一个基类动物类(animal),包含private数据成员:动物编号int num;和动物名称string name:public成员函数:getnum( )用于获取其编号, getname( ...
- 《社会动物——爱、性格和成就的潜在根源》读后感及摘录(1)
<社会动物--爱.性格和成就的潜在根源>读后感 这本书可以说是一本学术性质的心理学书籍.之所以又不单单是单纯的心理学书籍,也不算是单纯的学术呢?因为这本书是以小说的形式组织的 ...
- 螃蟹不能吃的四个部位,爱吃螃蟹的一定要进来看看。
在网上看到的文章. 仔细一看吓一跳,美味的螃蟹不能吃的地方还不少. 我只知其一,其二.其三.其四一概不知. 这些年吃了不少脏东西竟然没事,看来我身体排毒能力不错. 转发给和我一样爱吃螃蟹的版友,下次吃 ...
- 中国小孩为何普遍爱吃洋快餐?[转]
洋快餐被人称之为垃圾食品,经常食用对身体不好.这个道理很浅显谁都知道,但照样挡不住洋快餐在中国受到广大小孩乃至成年人的热捧.洋快餐真的有那么好吃吗?其实洋快餐在中国走红,赚得钵盈盆满,不是因其营养价值 ...
- 18. 爱吃皮蛋的小明(斐波那契数列)
时间限制: 1 s 空间限制: 32000 KB 题目等级 : 白银 Silver 题解 题目描述 Description 小明特别爱吃蛋,特别是皮蛋.他一次可以吃一个蛋或者两个蛋(整个吞下去),而且 ...
- OSChina 周三乱弹 ——我就爱吃月饼,就爱抢月饼。我高兴。
2019独角兽企业重金招聘Python工程师标准>>> @巴拉迪维:张敬轩<吻得太逼真>. 巴叔是麦霸, 爱上了乱弹点歌. 吻得太逼真 - 张敬轩 手机党少年们想听歌,请 ...
- 青梅酒太多不知该怎么选?记得你爱吃 的口味就可以
青梅酒的口味非常多,许多的朋友都不知道怎么选择,小编整理了一下,其实大家只需要记住自己的饮食习惯酒,再了解一下青梅酒的知识,就能选对了 喝酒的朋友应该都有过相同的经历,那就是花了许多的时间了解清楚了各 ...
- 美国名校为何青睐爱吃泡面的考生
美国名校为何青睐爱吃泡面的考生?福州一中有位姓王的高三男生因为爱吃泡面,被美国名校罗切斯特大学录取了.录取通知书中写道:在得知你对拉面的狂热以后,辅导员推荐了你,委员会和我都确信你会坚持到底,并且能作 ...
最新文章
- MongoDB指定类型查询数据
- SQL时间格式转换CONVERT_GETDATE()
- python 拆分excel openpyxl_openpyxl(python操作Excel)
- eclipsejvm内存不足_Eclipse无法调试及编译时内存不足的解决
- 使用集合映射和关联关系映射_使用R进行基因ID映射
- python2处理耗时任务_RabbitMQ Go客户端教程2——任务队列/工作队列
- 单列布局、两列布局、三列布局
- SQL Server 将在下一个版本实现内存中运行
- linux ip协议栈 漏洞,【漏洞预警】雪藏11年:Linux kernel DCCP double-free 权限提升漏洞(CVE-2017-6074)...
- N76E003的学习之路(一)
- 视频编码方案之间的比较(HEVC,H.264,MPEG2等)
- Lua5.1 升级 Lua5.3 升级 小结
- 在ARM板上运行Qt程序
- wifi可以连接但是上不了网该怎么解决?
- 香港服务器防攻击能力怎么样
- 键盘定位板图纸_看看199的机械键盘可以有多酷
- 星浩资本-以流程为中心
- 东方幻想乡/BadApple!!
- python数据获取及预处理_Python小练习——电影数据集TMDB预处理
- JVM学习(三)JVM内存模型