第十三周 项目一--动物这样叫(2)抽象类
2015-06-01 15:23
239 查看
问题及代码:
运行结果:
![](http://img.blog.csdn.net/20150601152206475)
知识点总结:抽象类哦!!
学习心得:加油Go!Go!Go!
/* *Copyright (c) 2015,烟台大学计算机学院 *All rights reserved. *文件名称:test.cpp *作者:吴胜男 *完成日期:2015年06月01日 *版本号:v1.0 * *问题描述:下面是给出的基类Animal声明和main()函数。 2、显然,Animal设计为抽象类更合适,Animal不需要能够实例化,是专门作基类使用的。改造程序,使Animal设计为抽象类,] 这时main()函数中p = new Animal();将出错,将此行删除。 *输入描述:略 *程序输出:略 */ #include <iostream> using namespace std; class Animal { public: virtual void cry()=0; }; class Mouse:public Animal { private: string name; char sex; public: Mouse(string na,char se) { name=na; sex=se; } void cry() { if(sex=='m') cout<<"我叫"<<name<<",是一只男老鼠,"<<"我的叫声是:吱吱吱!"<<endl; if(sex=='f') cout<<"我叫"<<name<<",是一只女老鼠,"<<"我的叫声是:吱吱吱!"<<endl; } }; class Cat:public Animal { private: string name; public: Cat(string na) { name=na; } void cry() { cout<<"我叫"<<name<<",是一只猫,"<<"我的叫声是:喵喵喵!"<<endl; } }; class Dog:public Animal { private: string name; public: Dog(string na) { name=na; } void cry() { cout<<"我叫"<<name<<",是一条狗,"<<"我的叫声是:汪汪汪!"<<endl; } }; class Giraffe:public Animal { private: string name; char sex; public: Giraffe(string na,char se) { name=na; sex=se; } void cry() { if(sex=='m') cout<<"我叫"<<name<<",是男长颈鹿,我的脖子太长,发不出声音来!"<<endl; if(sex=='f') cout<<"我叫"<<name<<",是女长颈鹿,我的脖子太长,发不出声音来!"<<endl; } }; int main( ) { Animal *p; 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; }
运行结果:
知识点总结:抽象类哦!!
学习心得:加油Go!Go!Go!
相关文章推荐
- hdu 5254
- git安装
- YT02-简单数学课后题-1005 {A} + {B} -(5.31日-烟台大学ACM预备队解题报告)
- D3+svg 案例
- JavaScript RegExp 对象
- 鼠标滑过变手型
- redis添加开机启动
- Android Fragment 你应该知道的一切
- Oracle存储过程
- CF209 Div2 (D) 找最长的连续子序列拥有相同的最大公约数,并且最大公约数是这个序列中的一个数-------左右延伸的方法
- CF221 Div2 (C)
- extundelete恢复备删除的文件
- 两个类相互包含引用的问题--类前向声明
- asp.net 登陆验证 Form表单验证的3种方式 FormsAuthentication.SetAuthCookie;FormsAuthentication.RedirectFromLoginPage;FormsAuthenticationTicket
- centos 5.6下部署postfix
- linux信号量初识
- php计算整个目录大小的方法
- IOS开发之__bridge,__bridge_transfer和__bridge_retained
- 黑马程序员-java之TreeSet,Comparable,Comparator
- myeclipse下载网址