《C++第十三周实验报告2-2、3》
2012-05-15 15:12
246 查看
/* 请写出程序的执行结果,并在上机时对照理解 */ /* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称: Animal.cpp * 作 者: 计114-3 王兴锋 * 完成日期: 2012 年 5 月 15 日 * 版 本 号: V 2.0 */ #include "iostream" #include<string> using namespace std; class Animal { protected: string name; public: virtual void cry() const = 0; }; class Mouse : public Animal { public: Mouse(string name){this->name = name;} void cry() const {cout<<"我叫" << name <<",是一只老鼠,我的叫声是:吱吱吱!"<<endl;} }; class Cat : public Animal { public: Cat(string name){this->name = name;} void cry() const {cout<<"我叫" << name <<",是一只猫,我的叫声是:喵喵喵!"<<endl;} }; class Dog : public Animal { public: Dog(string name){this->name = name;} void cry() const {cout<<"我叫" << name <<",是一条狗,我的叫声是:汪汪汪!"<<endl;} }; class Giraffe : public Animal { public: Giraffe(string name){this->name = name;} void cry() const {cout<<"我叫" << name <<",是长颈鹿,脖子太长,发不出声音来!"<<endl;} }; int main( ) { Animal *p; // p = new Animal(); p->cry(); //输出: 不知哪种动物,让我如何学叫?(问题出自此处) Mouse m("Jerry"); p=&m; p->cry(); //输出: 我叫Jerry,是一只老鼠,我的叫声是:吱吱吱! Cat c("Tom"); p=&c; p->cry(); //输出: 我叫Tom,是一只猫,我的叫声是:喵喵喵! Dog d("Droopy"); p=&d; p->cry(); //输出: 我叫Droopy,是一条狗,我的叫声是:汪汪汪! Giraffe g("Gill"); p=&g; p->cry(); //输出: 我叫Gill,是长颈鹿,脖子太长,发不出声音来! system("pause"); return 0; } /* 将公有数据在父类中定义减少了子类代码,增加了代码的复用; 将父类定义为纯虚基类,将其作为一个接口凡是其子类都必须具备此功能, 并复习。 */
相关文章推荐
- 《C++第十三周实验报告3-1》---定义抽象基类Shape,由它派生出3个派生类
- 《C++第十三周实验报告4-1》---设计一个抽象类CSolid,含有两个求表面积及体积的纯虚函数。 设计个派生类CCube、CBall、CCylinder,分别表示正方体、球体及圆柱体。
- 第十三周实验报告 任务二(1)
- 第十三周实验报告1.0
- 第十三周实验报告3(纯虚函数-抽象类)
- 《第十三周实验报告任务4》
- 第十三周实验报告(2)
- 第十三周实验报告1
- 第十三周实验报告4
- 第十三周实验报告1
- 第十三周实验报告 任务二(2)
- 第十三周实验报告1
- 第十三周实验报告(一)用自己的话总结对虚函数、多态性和抽象类的理解
- 第十三周实验报告3
- 第十三周实验报告(3)
- 第十三周实验报告4
- 第十三周实验报告3
- 第十三周实验报告(任务一)【虚函数、多态性、抽象类】
- 第十三周实验报告2
- 第十三周实验报告 任务二(3)