动物要吃饭

3 篇文章 0 订阅

Problem C: 动物要吃饭Time Limit: 1 Sec Memory Limit: 128 MB
Submit: 1832 Solved: 1639
[Submit][Status]Description定义Animal类,只有一个纯虚函数eat。
定义Dog、Cat、Sheep、Chicken四个类,它们都是Animal的子类。
每个类重载eat方法,每个方法输出的内容见样例。Input一系列0~3之内的整数。Output每个输入对应一行输出,0、1、2、3分别代表Dog、Cat、Sheep、Chicken。Sample Input
0
1
2
3
2
3
1
0
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.
HINTAppend Codeappend.cc,

#include<iostream>
#include<string>
#include<vector>
using namespace std;
class Animal{
public:
//    int price;
//    string name;
//    int sum;
//    Person( ){ }
//    virtual void input(){ }
//    virtual int  pay(){}
    virtual void eat(){ }
};
class Dog:public Animal
{
public:
//    void input(){cin>>price;}
//    int pay(){ return  price*1000;}
    void eat(){cout<<"Dog eats bone."<<endl;}
//    Manager(string s){name=s; }
};
class Cat:public Animal
{
public:
//    int jiang;
//    void input(){cin>>price>>jiang;}
//    int pay(){ return  price*(12+jiang)*1000;}
    void eat(){cout<<"Cat eats fish."<<endl;}
//    Employee(string s){name=s; }
};
 
class Sheep:public Animal
{
public:
//    int huor;
//    void input(){cin>>price>>huor;}
//    int pay(){ return  price*huor;}
    void eat(){cout<<"Sheep eats grass."<<endl;}
//    HourlyWorker(string s){name=s; }
};
 
class Chicken:public Animal
{
public:
//    int nian;
//    void input(){cin>>price>>nian;}
//    int pay(){ return  price*12*1000+nian*1000*0.02;}
    void eat(){cout<<"Chicken eats worm."<<endl;}
//    CommWorker(string s){name=s; }
};
 
 
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;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值