#include <iostream>

using namespace std;

class Animal{
public:
    virtual void move() = 0;//this is a pure virtual fcn, no def exists
};

class Dog: public Animal{
public:
    //    void move(){Animal::move();}
    void move(int i){cout << "I'm trotting happily!\n";}
};
class Cat: public Animal{
public:
    void move(){cout << "I'm prowling.\n";}
};

int main(){

    Animal *a;// = new Animal;
    //a->move();
    Cat * c = new Cat;
    c->move();
    a = c;
    a->move();
    return 0;
}

