第十三周 项目一 动物这样叫(2)
来源:互联网 发布:windows sdk 8.1 编辑:程序博客网 时间:2024/06/05 02:35
问题及代码:
/**Copyright (c)2014,烟台大学计算机与控制工程学院*All rights reserved.*文件名称:Project.cpp*作 者:chenqin.*完成日期:2015年6月3日*版 本 号:v1.0**问题描述:2.显然,Animal设计为抽象类更合适,Animal不需要能够实例化,是专门作基类使用的。改造程序,使Animal设计为抽象类,这时main()函数中p = new Animal();将出错,将此行删除.*程序输入:略*程序输出:略*/#include <iostream>#include<cstring>using namespace std;class Animal{public: virtual void cry()=0;};class Mouse:public Animal{public: Mouse(string n,char s):name(n),sex(s) {} void cry() { if(sex=='m') cout<<"我叫"<<name<<",是一只男老鼠,我的叫声是:吱吱吱!"<<endl; else cout<<"我叫"<<name<<",是一只女老鼠,我的叫声是:吱吱吱!"<<endl; }protected: string name; char sex;};class Cat:public Animal{public: Cat(string n):name(n) {} void cry() { cout<<"我叫"<<name<<",是一只猫,我的叫声是:喵喵喵!"<<endl; }protected: string name;};class Dog:public Animal{public: Dog(string n):name(n) {} void cry() { cout<<"我叫"<<name<<",是一条狗,我的叫声是:汪汪汪!"<<endl; }protected: string name;};class Giraffe:public Animal{public: Giraffe(string n,char s):name(n),sex(s) {} void cry() { if(sex=='m') cout <<"我叫"<<name<<",是男长颈鹿,我的脖子太长,发不出声音来!"<<endl; else cout<<"我叫"<<name<<",是女长颈鹿,我的脖子太长,发不出声音来!"<<endl; }protected: string name; char sex;};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("Droppy"); p=&d1; p->cry(); Giraffe g1("Gill",'m'); p=&g1; p->cry(); return 0;}
运行结果:
0 0
- 第十三周项目一(2)动物这样叫
- 第十三周项目一动物这样叫(2)
- 第十三周 项目一 动物这样叫(2)
- 第十三周项目一--动物这样叫(2)
- 第十三周项目一 动物这样叫
- 第十三周项目一动物这样叫
- 第十三周项目一 动物这样叫
- 第十三周 项目一 动物这样叫
- 第十三周项目一--动物这样叫
- 第十三周项目一:动物这样叫(一)
- 第十三周 项目一(3)动物这样叫
- 第十三周项目一动物这样叫(1)
- 第十三周项目一动物这样叫(3)
- 第十三周 项目一 动物这样叫(1)
- 第十三周 项目一 动物这样叫(3)
- 第十三周项目一--动物这样叫(3)
- 第十三周项目2动物这样叫
- 第十三周项目2-动物这样叫
- eclipse中一个项目引用另一个项目的方法
- Azure与Cloud Foundry的第一次握手
- iOS面试题
- Android中Handler引起的内存泄露
- 黑马程序员-IO字符流一些原理与应用
- 第十三周 项目一 动物这样叫(2)
- ffplay.c函数结构简单分析(画图)
- Wizwiki-W7500 正式登陆ARM mbed!
- sqlserver 随机查询性能
- mac下安装ruby环境
- CGAL Cookbook --泛型编程(类模板)
- java-java多线程与并发编程专题
- mysql 数据文件位置修改
- 使用bake安装dce quagga