第十三周 项目一(3)动物这样叫
来源:互联网 发布:uc davis 人工智能 编辑:程序博客网 时间:2024/05/16 07:19
/* Copyright (c) 2014, 烟台大学计算机学院* All rights reserved.* 文件名称:test.cpp* 作者:刘佳琦* 完成日期:2015年 5 月 31 日* 版 本 号:v1.0** 问题描述:每一个Animal的派生类都有一个“名字”数据成员,这一共有的成员完全可以由基类提供改造上面的程序,将这一数据成员作为抽象类Animal数据成员被各派生类使用。* 程序输入:* 程序输出:*/#include<iostream>#include<string>using namespace std;class Animal{protected: string name;public: Animal(string nam):name(nam){} virtual void cry() = 0;};class Mouse : public Animal{private: char sex;public: Mouse(string nam, char s):Animal(nam),sex(s) {} virtual void cry() { cout<<"我叫"<<name<<",是一只"<<((sex=='m')?"公":"母")<<"老鼠,我的叫声是:吱吱吱!"<<endl; }};class Cat : public Animal{public: Cat(string nam):Animal(nam) {} virtual void cry() { cout<<"我叫"<<name<<",是一只猫,我的叫声是:喵喵喵!"<<endl; }};class Dog : public Animal{public: Dog(string nam):Animal(nam){} virtual void cry() { cout<<"我叫"<<name<<",是一条狗,我的叫声是:汪汪汪!"<<endl; }};class Giraffe : public Animal{ char sex;public: Giraffe(string nam,char s):Animal(nam),sex(s) {} virtual void cry() { cout<<"我叫"<<name<<",是"<<((sex=='m')?"公":"母")<<"长颈鹿,我的脖子太长,发不出声音来!"<<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;}
运行结果:
学习心得:
在基类增加成员,构造函数都要改~
0 0
- 第十三周 项目一(3)动物这样叫
- 第十三周项目一动物这样叫(3)
- 第十三周 项目一 动物这样叫(3)
- 第十三周项目一--动物这样叫(3)
- 第十三周项目一 动物这样叫
- 第十三周项目一动物这样叫
- 第十三周项目一 动物这样叫
- 第十三周 项目一 动物这样叫
- 第十三周项目一--动物这样叫
- 第十三周项目一:动物这样叫(一)
- 第十三周项目一(2)动物这样叫
- 第十三周项目一动物这样叫(1)
- 第十三周项目一动物这样叫(2)
- 第十三周 项目一 动物这样叫(1)
- 第十三周 项目一 动物这样叫(2)
- 第十三周项目一--动物这样叫(2)
- 第十三周项目-项目2-(3)-动物这样叫
- 第十三周 项目1-动物这样叫(3)
- 我不重要2
- Internal Sorting: Radix exchange sort: Sorting by Exchanging
- Redis 学习笔记四 Mysql 与Redis的同步实践
- .NET中的范型与集合
- WF入门
- 第十三周 项目一(3)动物这样叫
- 图片上传之fileupload
- 大话设计模式—工厂模式
- 承志医院管理系统项目解析 门诊医生工作站—处方录入(五)
- Android JNI编程学习
- Dijkstra算法java现实
- android开发环境搭建
- 嵌入式软件工程师经典笔试题
- 归并算法