第十四周 项目1抽象基类
来源:互联网 发布:php true false大小写 编辑:程序博客网 时间:2024/05/29 13:24
/** Copyright (c) 2011, 烟台大学计算机学院* All rights reserved.* 作 者:王静* 完成日期:2013 年 6 月 2 日* 版 本 号:v1.0* 输入描述:* 问题描述:1、根据给出的main()函数和运行结果的提示,设计出相关的各个类,注意观察运行结果,提取出每个类中需要的数据成员,并 匹配上需要的成员函数。 2、显然,Animal设计为抽象类更合适,Animal不需要能够实例化,是专门作基类使用的。改造程序,使Animal设计为抽象类,这时 main()函数中p = newAnimal();将出错,将此行删除。 3、每一个Animal的派生类都有一个“名字”数据成员,这一共有的成员完全可以由基类提供改造上面的程序,将这一数据成员作为抽 象类Animal数据成员被各派生类使用。* 程序输出:* 问题分析:* 算法设计:略*/#include <iostream>#include <string>using namespace std;class Animal{public: Animal(string n):name(n){} virtual void cry() { cout<<"不知哪种动物,让我如何学叫?"<<endl; }protected: string name;};class Mouse:public Animal{public: Mouse(string n,char s):Animal(n),sex(s){} void cry() { cout<<"我叫"<<name<<",是一只"; if(sex='m')cout<<"男"; else cout<<"女"; cout<<"老鼠,我的叫声是:吱吱吱!"<<endl; } char sex;};class Cat:public Animal{public: Cat(string n):Animal(n){} void cry() { cout<<"我叫"<<name<<",是一只猫,我的叫声是:喵喵喵!"<<endl; }};class Dog:public Animal{public: Dog(string n):Animal(n){} void cry() { cout<<"我叫"<<name<<",是一只狗,我的叫声是:汪汪汪!"<<endl; }};class Giraffe:public Animal{public: Giraffe(string n,char s):Animal(n),sex(s){} void cry() { cout<<"我叫"<<name<<",是"; if(sex='m')cout<<"男"; else cout<<"女"; cout<<"长颈鹿,我的脖子太长,发不出声音来!"<<endl; } char sex;};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;}
运行结果:
- 第十四周 项目1抽象基类
- 第十四周 项目1(2) 抽象基类
- 第十四周项目二:定义抽象基类Shape
- 第十四周项目三:抽象类CSolid
- 第十四周项目三----抽象类
- 第十四周项目一:Animal类(抽象类)
- 2013第十四周上机任务【项目2 抽象Shape类】
- 第十四周 项目一:动物怎么叫?(抽象类)
- 第十四周项目三——抽象类CSolid
- 第十四周项目二——抽象基类shape类
- 第十四周项目1
- 第十四周项目1
- 第十四周【项目1
- 第十四周 【项目1
- 第十四周项目1
- 第十四周项目1
- 第十四周项目1
- 第十四周项目1
- android webview 销毁
- spring中的各种通知
- oracle for update和for update nowait的区别
- 图片(使用Lumia920T)
- hibernate 乐观锁与悲观锁使用
- 第十四周 项目1抽象基类
- Android: NDK编程入门笔记
- 【算法导论】插入排序法
- XCODE DEBUG技巧
- Unity3D系列教程–使用免费工具在Unity3D中开发2D游戏 第三节
- matlab学习
- 《windows核心编程》读后编码--关键段
- 第十四周 项目三:定义抽象类CSolid,含有表面积及体积的纯虚数,派生出CCube,CBall,CCylinder,分别表示正方体、球体及圆柱体
- 项目2抽象基类与派生类