第十三周 项目一 (3)Animal 抽象类加入名字。
来源:互联网 发布:mac pdf reader pro 编辑:程序博客网 时间:2024/05/17 02:03
/**Copyright (c)2014,烟台大学计算机与控制工程学院*All rights reserved.*文件名称:d.cpp*作 者:张旺华*完成日期:2015年5月27日*版 本 号:v1.0*/#include <iostream>using namespace std;class Animal{public: string name; Animal(string n):name(n){} virtual void cry()=0;};class Mouse : public Animal{public: Mouse(string n,char a='0'):Animal(n),sex(a) {} void cry() { cout<<"我叫"<<name<<",是一只"; cout<<((sex=='0')?"":((sex=='m')?"男":"女")); cout<<"老鼠,我的叫声是:吱吱吱!"<<endl; }private: char sex;};class Dog : public Animal{public: Dog(string n,char a='0'):Animal(n),sex(a) {} void cry() { cout<<"我叫"<<name<<",是一条"; cout<<((sex=='0')?"":((sex=='m')?"男":"女")); cout<<"狗,我的叫声是:汪汪汪!"<<endl; }private: char sex; string name;};class Cat: public Animal{public: Cat(string n,char a='0'):Animal(n),sex(a) {} void cry() { cout<<"我叫"<<name<<",是一只"; cout<<((sex=='0')?"":((sex=='m')?"男":"女")); cout<<"猫,我的叫声是:喵喵喵!"<<endl; }private: char sex;};class Giraffe : public Animal{public: Giraffe(string n,char a='0'):Animal(n),sex(a) {} void cry() { cout<<"我叫"<<name<<",是一只"; cout<<((sex=='0')?"":((sex=='m')?"男":"女")); cout<<"长颈鹿,我的脖子太长,发不出声音来!"<<endl; }private: 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;}
运行结果:
知识点应用及心得:
在这里要注意构造函数
Giraffe(string n,char a='0'):Animal(n),sex(a) {}要对基类定义
0 0
- 第十三周 项目一 (3)Animal 抽象类加入名字。
- 第十三周 项目一(2)Animal 设计为抽象类
- 第十三周【任务二】Animal设计为抽象类,每一个Animal的派生类都有一个“名字”数据成员
- 第十四周项目一:Animal类(抽象类)
- 第十三周项目一 动物怎么叫(抽象类)
- 第十三周项目一(3):动物这样叫:抽象类
- 第十三周 项目一--动物 这样叫(3)有数据成员的抽象类
- 项目一(虚基类animal)
- 《第十三周任务二-----2.3》改造程序,使Animal设计为抽象类。将这一数据成员作为抽象类Animal数据成员被各派生类使用
- 第十四周项目一:Animal类(修改1)
- 第十三周 项目一(2):动物这样叫(抽象类)
- 第十三周项目一(2):动物这样叫:抽象类
- 第十三周 项目一--动物这样叫(2)抽象类
- 第14周项目一-Animal sounds
- 第十三周项目一(3)
- 第十三周 图 项目一(3)
- 14周项目1:Animal类
- 第14周C++上机报告(Animal抽象基类)
- 提取Excel、Word、PPT文件中的Flash文件的两种方法
- Java开发中的23种设计模式详解(转)
- iostream stdlib fstream io.h 头文件的作用
- csv文件打开中文乱码解决方法
- 第十二周 项目二 摩托车继承自行车和机动车
- 第十三周 项目一 (3)Animal 抽象类加入名字。
- [离散+二分]HDU4400 Mines
- 菜鸟学Android(五):XML约束之DTD2
- 数据结构
- zookeeper windows 入门安装和测试
- Java线程可见性
- GITHUB之GIT BASH使用教程
- 零散知识点.....
- android log system