#include <iostream>
struct base
{
virtual ~base()
{
}
virtual void print() const
{
std::cout << "i'm a base";
}
};
struct derived : base
{
int a;
virtual void print() const
{
std::cout << "i'm derived";
}
};
int main()
{
base* array = new derived[4];
array[2].print();
delete[] array;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgpzdHJ1Y3QgYmFzZQp7CiAgICB2aXJ0dWFsIH5iYXNlKCkKICAgIHsKICAgIH0KICAgIHZpcnR1YWwgdm9pZCBwcmludCgpIGNvbnN0CiAgICB7CiAgICAgICAgc3RkOjpjb3V0IDw8ICJpJ20gYSBiYXNlIjsKICAgIH0KfTsKc3RydWN0IGRlcml2ZWQgOiBiYXNlCnsKICAgIGludCBhOwogICAgdmlydHVhbCB2b2lkIHByaW50KCkgY29uc3QKICAgIHsKICAgICAgICBzdGQ6OmNvdXQgPDwgImknbSBkZXJpdmVkIjsKICAgIH0KfTsKaW50IG1haW4oKQp7CiAgICBiYXNlKiBhcnJheSA9IG5ldyBkZXJpdmVkWzRdOwogICAgYXJyYXlbMl0ucHJpbnQoKTsKICAgIGRlbGV0ZVtdIGFycmF5Owp9