第13周项目2 (3)
2016-05-29 22:04
246 查看
/* *copyright(c) 2016,烟台大学计算机与控制工程学院 *All rights reserved *文件名称:test.cpp *作者:李硕 *版本:Code::Blocks * *问题描述:每一个Animal的派生类都有一个“名字”数据成员,这一共有的成员完全可以由基类提供改造上面的程序, 将这一数据成员作为抽象类Animal数据成员被各派生类使用。 *输入描述: *程序输出: */ #include <iostream> 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 se):Animal(nam),sex(se){} 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 { private: char sex; public: Giraffe(string nam,char se):Animal(nam),sex(se){} virtual void cry() { cout<<"我叫"<<name<<",是"<<((sex=='m')?"男":"女")<<"长颈鹿,我的脖子太长,发不出声音来!"<<endl; } }; int main( ){ Animal *p; // p = new Animal(); // p->cry(); 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; }
相关文章推荐
- EMIPLIB库分析一
- autoLayout自动布局约束技巧
- CodeForces 300 A Array
- c++ 对象内存布局详解
- 例题5-4 UVa156 Ananagrams(STL:map)
- 在Ubuntu 12.04安装和设置SSH服务
- 23种设计模式3--结构型模式(适配器模式、装饰模式、代理模式、外观模式、桥接模式、组合模式、享元模式)
- 自定义CircleProgressView控件
- 第二阶段冲刺第五天
- mysql定时备份
- 安卓初识基本控件_Spinner
- Java注解
- PHP复用curl请求遇到的请求参数混乱的问题
- Java BlockQueue
- 使用资源调控器管理资源
- Android网易云课堂第三次笔记
- 数据化运营管理_互联网行业(二)(转化篇)
- 强大的strace命令
- 有3个学生,各修四门课,求总平均分及第n个学生的总分
- 第13周项目2 (2)