- #include <iostream>
- #include <vector>
- using namespace std;
- //base class
- class Animal
- {
- public:
- virtual void eat()
- { cout << "animal eat" << endl;
- }
- virtual void die()
- { cout << "animal die" << endl;
- }
- };
- class Dog : public Animal
- {
- public:
- void eat() override
- { cout << "dog eat" << endl;
- Animal::die(); //use base class's function
- }
- };
- class Cat : public Animal
- {
- public:
- void eat() override
- { cout << "cat eat" << endl;
- }
- };
- class Lion : public Animal
- {
- };
- int main()
- { vector<Animal*> someAnimals; //基类的数组指针
- someAnimals.push_back(new Animal());
- someAnimals.push_back(new Dog());
- someAnimals.push_back(new Cat());
- someAnimals.push_back(new Lion());
- for(unsigned int i = 0; i<someAnimals.size(); ++i)//注意这里相同类型的无符号数才能够进行比较
- { someAnimals[i]->eat();
- }
- system("pause");
- return 0;
- }
- //该片段来自于http://www.codesnippet.cn/detail/1011201410931.html
来源: http://www.codesnippet.cn/detail/1011201410931.html