0
点赞
收藏
分享

微信扫一扫

Problem G: 动物要吃饭


Home

Web Board

ProblemSet

Standing

Status

Statistics


Problem G: 动物要吃饭


Time Limit: 1 Sec   Memory Limit: 128 MB

Submit: 673  

Solved: 615

[Submit][Status][Web Board]


Description



定义Animal类,只有一个纯虚函数eat。

定义Dog、Cat、Sheep、Chicken四个类,它们都是Animal的子类。

每个类重载eat方法,每个方法输出的内容见样例。



Input



一系列0~3之内的整数。



Output



每个输入对应一行输出,0、1、2、3分别代表Dog、Cat、Sheep、Chicken。



Sample Input



01232310



Sample Output



Dog eats bone.Cat eats fish.Sheep eats grass.Chicken eats worm.Sheep eats grass.Chicken eats worm.Cat eats fish.Dog eats bone.



HINT

Append Code



append.cc,


[ Submit][Status][Web Board]


한국어<  中文 فارسی English ไทย All Copyright Reserved 2010-2011 SDUSTOJ TEAM
GPL2.0 2003-2011 HUSTOJ Project TEAM
Anything about the Problems, Please Contact Admin:admin


#include <iostream>
#include <iomanip>
#include <stdio.h>
#include <cstring>
#include <cmath>
#include <list>
#include <vector>
using namespace std;
class Animal
{
public:
    virtual void eat()const = 0;
};
class Dog:public Animal
{
public:
    void eat()const { cout << "Dog eats bone." << endl; }
};
class Cat:public Animal
{
public:
    void eat()const { cout << "Cat eats fish." << endl; }
};
class Sheep:public Animal
{
public:
    void eat()const { cout << "Sheep eats grass." << endl; }
};
class Chicken:public Animal
{
public:
    void eat()const { cout << "Chicken eats worm." << endl; }
};
 
 
 
int main()
{
    int c;
    vector<Animal*> animals;
    vector<Animal*>::iterator itr;
    while(cin>>c)
    {
        switch(c)
        {
        case 0 :
            animals.push_back(new Dog());
            break;
        case 1:
            animals.push_back(new Cat());
            break;
        case 2:
            animals.push_back(new Sheep());
            break;
        case 3:
            animals.push_back(new Chicken());
        }
    }
    for (itr = animals.begin(); itr != animals.end(); itr++)
        (*itr)->eat();
    return 0;
}



举报

相关推荐

0 条评论