第13周项目2 (2)
2016-05-29 22:01
253 查看
/* *copyright(c) 2016,烟台大学计算机与控制工程学院 *All rights reserved *文件名称:test.cpp *作者:李硕 *版本:Code::Blocks * *问题描述:显然,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 nam,char se):name(nam),sex(se){} virtual void cry() { cout<<"我叫"<<name<<",是一只"<<((sex=='m')?"男":"女")<<"老鼠,我的叫声是:吱吱吱!"<<endl; } }; class Cat:public Animal { private: string name; public: Cat(string nam):name(nam){} virtual void cry() { cout<<"我叫"<<name<<"是一只猫,我的叫声是:吱吱吱!"<<endl; } }; class Dog:public Animal { private: string name; public: Dog(string nam):name(nam){} virtual void cry() { cout<<"我叫"<<name<<"是一只狗,我的叫声是:汪汪汪!"<<endl; } }; class Giraffe:public Animal { private: string name; char sex; public: Giraffe(string nam,char se):name(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; }
相关文章推荐
- UITableViewCell的选中时的颜色设置
- MySQL各种日志总结
- c#中的扩展方法
- CentOS6.7安装Oracle 11g2R傻瓜图文教程
- 【Programming In Lua (2E) 笔记】3:给C++程序插上翅膀——C++调用lua
- Android中自定义dialog
- ACdream 1219 The Towers of Hanoi Revisited多柱汉诺塔【递归】
- Bluemix云端数据库服务使用示例———PHP投票程序
- 自定义model 转出 字典
- Android 基础总结:(九)Content Provider用法和理解
- Mybatis 系列(2)——SSM(spring mvc+spring+Mybatis)框架整合
- 【转载】mysql存储过程详解
- 天赋是牛人的基因?
- Ajax基本原理
- 在android上实现IOC
- K-means clustering is not a free lunch
- 人脸位置识别
- 2066 三角恋
- 初识ASP.NET MVC
- Dijkstra最短路径算法