#include <stdio.h>

class Tier
{
public:
    void essen() // setze diese Methode auf virtual
    {
    	printf("Tiere können essen!\n"); 
    }
};

class Wolf : public Tier
{
public:
    void essen()	// Implementierung der virtuellen Methode
    {				
    	printf( "Wölfe können essen!\n"); 
    } 
};

class Katze : public Tier
{
public:
    void essen()	// Implementierung der virtuellen Methode
    {				
    	printf( "Katzen können essen!\n"); 
    } 
};

class HausKatze : public Katze
{
public:
    void essen()	// Implementierung der virtuellen Methode
    {				
    	printf( "HausKatzen können essen!\n"); 
    } 
};

int main()
{
    Tier* theArray[5];
    Tier* ptr;
    
    ptr = new Wolf;
    theArray[0] = ptr;
    ptr = new Katze;
    theArray[1] = ptr;
    ptr = new Tier;
    theArray[2] = ptr;
    ptr = new HausKatze;
    theArray[3] = ptr;
    
	for( int i=0; i < 4; i++) {
		theArray[i]->essen();
	}

}