#include <iostream>
class foo{
static int idgen;
protected:
int id;
public:
foo(){
id = idgen++;
std::cout << "Hello ( foo - "<<id<<")"<<std::endl;
}
virtual ~foo(){
std::cout << "Bye bye ( foo - "<<id<<")"<<std::endl;
};
};
int foo::idgen = 0;
class bar: public foo{
double some_data[20];
public:
bar(){
std::cout << "Hello ( bar - "<<id<<")"<<std::endl;
}
virtual ~bar() override{
std::cout << "Bye bye ( bar - "<<id<<")"<<std::endl;
}
};
int main()
{
const unsigned int size = 2;
foo* test = new bar[size];
delete[] test;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKY2xhc3MgZm9vewogICAgc3RhdGljIGludCBpZGdlbjsKcHJvdGVjdGVkOgogICAgaW50IGlkOwpwdWJsaWM6CiAgICBmb28oKXsKICAgICAgICBpZCA9IGlkZ2VuKys7CiAgICAgICAgc3RkOjpjb3V0IDw8ICJIZWxsbyAgKCBmb28gLSAiPDxpZDw8IikiPDxzdGQ6OmVuZGw7CiAgICB9CiAgICB2aXJ0dWFsIH5mb28oKXsKICAgICAgICBzdGQ6OmNvdXQgPDwgIkJ5ZSBieWUgKCBmb28gLSAiPDxpZDw8IikiPDxzdGQ6OmVuZGw7CiAgICB9Owp9OwoKaW50IGZvbzo6aWRnZW4gPSAwOwoKCmNsYXNzIGJhcjogcHVibGljIGZvb3sKICAgIGRvdWJsZSBzb21lX2RhdGFbMjBdOwpwdWJsaWM6CiAgICBiYXIoKXsKCiAgICBzdGQ6OmNvdXQgPDwgIkhlbGxvICAoIGJhciAtICI8PGlkPDwiKSI8PHN0ZDo6ZW5kbDsKfQogICAgdmlydHVhbCB+YmFyKCkgb3ZlcnJpZGV7CiAgICAgICAgc3RkOjpjb3V0IDw8ICJCeWUgYnllICggYmFyIC0gIjw8aWQ8PCIpIjw8c3RkOjplbmRsOwogICAgfQp9OwoKaW50IG1haW4oKQp7CiAgICBjb25zdCB1bnNpZ25lZCBpbnQgc2l6ZSA9IDI7CiAgICBmb28qIHRlc3QgPSBuZXcgYmFyW3NpemVdOwogICAgZGVsZXRlW10gdGVzdDsKfQ==