第十三周上机实践——项目2-动物这样叫-(2)&(3)

来源:互联网 发布:linux mkdir p 编辑:程序博客网 时间:2024/05/21 05:57
/* *Copyright (c)2016,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:main.cpp,Animal.h,Animal.cpp *作    者:郭永恒 *完成日期:2016年5月28日 *版 本 号:v1.0 * *问题描述:把Animal设置成抽象类,name作为Animal的成员 */

Animal.h

#ifndef ANIMAL_H_INCLUDED#define ANIMAL_H_INCLUDED#include <iostream>class Animal{public:    Animal(std::string nam):name(nam){}    virtual void cry() = 0;protected:    std::string name;};class Mouse: public Animal{public:    Mouse(std::string nam,char se):Animal(nam),sex(se){}    void cry();private:    char sex;};class Cat:public Animal{public:    Cat(std::string nam):Animal(nam){}    void cry();};class Dog:public Animal{public:    Dog(std::string nam):Animal(nam){}    void cry();};class Giraffe:public Animal{public:    Giraffe(std::string nam,char se):Animal(nam),sex(se){}    void cry();private:    char sex;};#endif // ANIMAL_H_INCLUDED
Animal.cpp

#include "Animal.h"void Mouse::cry(){    std::cout << " 我叫" << name << ",是一只";    if(sex == 'm')        std::cout << " 男";    else        std::cout << " 女";    std::cout << " 老鼠,我的叫声是吱吱吱!" << std::endl;}void Cat::cry(){    std::cout << " 我叫" << name << ",是一只猫,我的叫声是:喵喵喵!" << std::endl;}void Dog::cry(){    std::cout << " 我叫" << name << ",是一条狗,我的叫声是:汪汪汪!" << std::endl;}void Giraffe::cry(){    std::cout << " 我叫" << name << ",是";    if(sex == 'm')        std::cout << " 男";    else        std::cout << " 女";    std::cout << " 长颈鹿,我的脖子太长,发不出声音来!" << std::endl;}
main.cpp

#include "Animal.h"#include <iostream>using namespace std;int main(){    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;}
运行结果:





0 0