#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();
}
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgpjbGFzcyBUaWVyCnsKcHVibGljOgogICAgdm9pZCBlc3NlbigpIC8vIHNldHplIGRpZXNlIE1ldGhvZGUgYXVmIHZpcnR1YWwKICAgIHsKICAgIAlwcmludGYoIlRpZXJlIGvDtm5uZW4gZXNzZW4hXG4iKTsgCiAgICB9Cn07CgpjbGFzcyBXb2xmIDogcHVibGljIFRpZXIKewpwdWJsaWM6CiAgICB2b2lkIGVzc2VuKCkJLy8gSW1wbGVtZW50aWVydW5nIGRlciB2aXJ0dWVsbGVuIE1ldGhvZGUKICAgIHsJCQkJCiAgICAJcHJpbnRmKCAiV8O2bGZlIGvDtm5uZW4gZXNzZW4hXG4iKTsgCiAgICB9IAp9OwoKY2xhc3MgS2F0emUgOiBwdWJsaWMgVGllcgp7CnB1YmxpYzoKICAgIHZvaWQgZXNzZW4oKQkvLyBJbXBsZW1lbnRpZXJ1bmcgZGVyIHZpcnR1ZWxsZW4gTWV0aG9kZQogICAgewkJCQkKICAgIAlwcmludGYoICJLYXR6ZW4ga8O2bm5lbiBlc3NlbiFcbiIpOyAKICAgIH0gCn07CgpjbGFzcyBIYXVzS2F0emUgOiBwdWJsaWMgS2F0emUKewpwdWJsaWM6CiAgICB2b2lkIGVzc2VuKCkJLy8gSW1wbGVtZW50aWVydW5nIGRlciB2aXJ0dWVsbGVuIE1ldGhvZGUKICAgIHsJCQkJCiAgICAJcHJpbnRmKCAiSGF1c0thdHplbiBrw7ZubmVuIGVzc2VuIVxuIik7IAogICAgfSAKfTsKCmludCBtYWluKCkKewogICAgVGllciogdGhlQXJyYXlbNV07CiAgICBUaWVyKiBwdHI7CiAgICAKICAgIHB0ciA9IG5ldyBXb2xmOwogICAgdGhlQXJyYXlbMF0gPSBwdHI7CiAgICBwdHIgPSBuZXcgS2F0emU7CiAgICB0aGVBcnJheVsxXSA9IHB0cjsKICAgIHB0ciA9IG5ldyBUaWVyOwogICAgdGhlQXJyYXlbMl0gPSBwdHI7CiAgICBwdHIgPSBuZXcgSGF1c0thdHplOwogICAgdGhlQXJyYXlbM10gPSBwdHI7CiAgICAKCWZvciggaW50IGk9MDsgaSA8IDQ7IGkrKykgewoJCXRoZUFycmF5W2ldLT5lc3NlbigpOwoJfQoKfQ==