第十三周项目一动物这样叫(3)
来源:互联网 发布:数控车床螺纹g92编程 编辑:程序博客网 时间:2024/05/16 09:06
问题及代码:
/* * Copyright (c) 2014, 烟台大学计算机与控制工程学院 * All rights reserved. * 文件名称:test.cpp * 作 者:郝俊宇 * 完成日期:2015年 6 月1 日 * 版 本 号:v1.0 * 问题描述:3、每一个Animal的派生类都有一个“名字”数据成员,这个成员设置为基类Animal的成员更好。改造上面的程序,将“名字”成员作为抽象类Animal数据成员被各派生类使用。 * 输入描述:无 * 程序输出:对应的内容 */ #include <iostream>#include <string>#include <cstdio>using namespace std;class Animal{public: virtual void cry()=0; Animal(string n=0):name(n){}protected: string name;};class Mouse:public Animal{public: Mouse(string n=0,char s=0):Animal(n),sex(s){} void cry() { cout<<"我叫"<<name<<",是一只"; if(sex=='f') cout<<"女老鼠"; else cout<<"男老鼠"; cout<<",我的叫声是:吱吱吱!"<<endl; }private: char sex;};class Cat:public Animal{public: Cat(string n=0):Animal(n){} void cry() { cout<<"我叫"<<name<<",是一只猫,我的叫声是:喵喵喵!"<<endl; }};class Dog:public Animal{public: Dog(string n=0):Animal(n){} void cry() { cout<<"我叫"<<name<<",是一条狗,我的叫声是:汪汪汪!"<<endl; }};class Giraffe:public Animal{public: Giraffe(string n=0,char s=0):Animal(n),sex(s){} void cry() { cout<<"我叫"<<name<<",是"; if(sex=='f') cout<<"女长颈鹿"; else cout<<"男长颈鹿"; cout<<",我的脖子太长,发不出声音来!"<<endl; }private: char sex;};int main( ){ cout<<"不知哪种动物,让我如何学叫?"<<endl; 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;}
运行结果:
知识点总结:
抽象类中的数据成员被派生来使用。
学习心得:
第一次编译的时候出现了4个错误,看了半天不知道是哪里出错了,由于英语渣到不行,就百度了一下提示出错句子的意思,顺便看到了出现这个错误的原因,就按照提示改了一下,在编译就对了。
0 0
- 第十三周 项目一(3)动物这样叫
- 第十三周项目一动物这样叫(3)
- 第十三周 项目一 动物这样叫(3)
- 第十三周项目一--动物这样叫(3)
- 第十三周项目一 动物这样叫
- 第十三周项目一动物这样叫
- 第十三周项目一 动物这样叫
- 第十三周 项目一 动物这样叫
- 第十三周项目一--动物这样叫
- 第十三周项目一:动物这样叫(一)
- 第十三周项目一(2)动物这样叫
- 第十三周项目一动物这样叫(1)
- 第十三周项目一动物这样叫(2)
- 第十三周 项目一 动物这样叫(1)
- 第十三周 项目一 动物这样叫(2)
- 第十三周项目一--动物这样叫(2)
- 第十三周项目-项目2-(3)-动物这样叫
- 第十三周 项目1-动物这样叫(3)
- 第12周项目1-2
- Mybatis中insert、Update操作返回主键
- NYOJ 10 skiing
- 关于 /sys/class/gpio 简介
- JavaScript中的Function
- 第十三周项目一动物这样叫(3)
- YT02-简单数学课堂题-1004 Fibonacci Again -(5.31日-烟台大学ACM预备队解题报告)
- Java 如何调用操作系统命令
- PHP笔记-变量
- 项目中常用的封装类
- Myeclipse10.7安装fat-jar
- POJ 3139 / LA 3693 Balancing the Scale (枚举,状态压缩)
- C++杨辉三角完美打印输出
- mysql 乱码问题