#include <iostream>
#include <stdio.h>
#include <vector>
#include <memory>
using namespace std;
class Animal
{
public:
virtual ~Animal(){}
virtual void walking()=0;
};
class Dog: public Animal
{
public:
virtual void walking()
{
printf("dogs walk on four legs\n");
}
};
class Pig:public Animal
{
public:
virtual void walking()
{
printf("Pigs walk on four legs\n");
}
};
class Chicken:public Animal
{
public:
virtual void walking()
{
printf("chickens walk on two legs\n");
}
};
int main()
{
printf("class relization relationship\n");
vector<shared_ptr<Animal>> animals;
animals.push_back(shared_ptr<Animal>(new Dog()));
animals.push_back(shared_ptr<Animal>(new Chicken()));
animals.push_back(shared_ptr<Animal>(new Pig()));
for (auto& i : animals)
i->walking();
return 0;
}