#include <iostream>
#include <vector>
using namespace std;
class Animal
{
public:
virtual void makeSound() {
cout << "Animal!" << endl;
}
};
class Dog : public Animal
{
public:
void makeSound() {
cout << "Woof" << endl;
}
};
int main()
{
Dog dog;
vector<Animal*> animal {&dog};
animal.at(0)->makeSound();
// or: animal[0]->makeSound();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgQW5pbWFsCnsKcHVibGljOgogIHZpcnR1YWwgdm9pZCBtYWtlU291bmQoKSB7ICAKICAgIGNvdXQgPDwgIkFuaW1hbCEiIDw8IGVuZGw7CiAgfQp9OwoKY2xhc3MgRG9nIDogcHVibGljIEFuaW1hbAp7CnB1YmxpYzoKICB2b2lkIG1ha2VTb3VuZCgpIHsKICAgIGNvdXQgPDwgIldvb2YiIDw8IGVuZGw7CiAgfQp9OwogCiAgCmludCBtYWluKCkKewogIERvZyBkb2c7CiAgICAKICB2ZWN0b3I8QW5pbWFsKj4gYW5pbWFsIHsmZG9nfTsKICBhbmltYWwuYXQoMCktPm1ha2VTb3VuZCgpOwogIC8vIG9yOiBhbmltYWxbMF0tPm1ha2VTb3VuZCgpOwogIAogIHJldHVybiAwOwp9