#include #include #include #include using namespace std; class Animal{ private: string name; public: Animal():name("unknown"){} virtual int legs(){return 100;} virtual string species(){return "unknown";} virtual string getName(){return name;} protected: virtual string setName(string n){name=n;} }; class Lion : public Animal { public: virtual int legs(){return 4;} virtual string species(){return "Lion";} Lion(string n){this->setName(n);} }; class Bird : public Animal { public: virtual int legs(){return 2;} virtual string species(){return "Bird";} Bird(string n){this->setName(n);} }; class Snake: public Animal{ public: virtual int legs(); virtual string species(); Snake(string n){this->setName(n);} }; int Snake::legs(){return 0;} string Snake::species(){return "Snake";} int main() { vector zoo; zoo.push_back( Lion("Leo")); zoo.push_back( Snake("Hissing Sid")); zoo.push_back( Bird("Tweety Pie") ); cout <<"----------------\n"; for(int i=0; i < 3; i++) { cout << zoo[i].species() << " "; cout << zoo[i].getName() << ": "; cout << zoo[i].legs() << endl; } cout <<"----------------\n"; for(vector::iterator i=zoo.begin(); i != zoo.end(); i++) { cout << (*i).species() << " "; cout << (*i).getName() << ": "; cout << (*i).legs() << endl; } cout <<"----------------\n"; return 0; }