- #ifndef ANIMAL_H_INCLUDED
- #define ANIMAL_H_INCLUDED
- #include <iostream>
- class Animal
- {
- public:
- virtual void cry()
- {
- std::cout << " 不知哪种动物,让我如何学叫?" << std::endl;
- }
- };
- class Mouse: public Animal
- {
- public:
- Mouse(std::string nam,char se):name(nam),sex(se){}
- void cry();
- private:
- std::string name;
- char sex;
- };
- class Cat:public Animal
- {
- public:
- Cat(std::string nam):name(nam){}
- void cry();
- private:
- std::string name;
- };
- class Dog:public Animal
- {
- public:
- Dog(std::string nam):name(nam){}
- void cry();
- private:
- std::string name;
- };
- class Giraffe:public Animal
- {
- public:
- Giraffe(std::string nam,char se):name(nam),sex(se){}
- void cry();
- private:
- std::string name;
- 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;
- }
- #include "Animal.h"
- #include <iostream>
- using namespace std;
- 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;
- }