#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 int size = 5;
foo *test[size];
for(int i = 0; i < size; ++i)
test[i] = new bar;
for(int i = 0; i < size; ++i)
delete test[i];
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKY2xhc3MgZm9vewogICAgc3RhdGljIGludCBpZGdlbjsKcHJvdGVjdGVkOgogICAgaW50IGlkOwpwdWJsaWM6CiAgICBmb28oKXsKICAgICAgICBpZCA9IGlkZ2VuKys7CiAgICAgICAgc3RkOjpjb3V0IDw8ICJIZWxsbyAgKCBmb28gLSAiPDxpZDw8IikiPDxzdGQ6OmVuZGw7CiAgICB9CiAgICB2aXJ0dWFsIH5mb28oKXsKICAgICAgICBzdGQ6OmNvdXQgPDwgIkJ5ZSBieWUgKCBmb28gLSAiPDxpZDw8IikiPDxzdGQ6OmVuZGw7CiAgICB9Owp9OwoKaW50IGZvbzo6aWRnZW4gPSAwOwoKCmNsYXNzIGJhcjogcHVibGljIGZvb3sKICAgIGRvdWJsZSBzb21lX2RhdGFbMjBdOwpwdWJsaWM6CiAgICBiYXIoKXsKCiAgICBzdGQ6OmNvdXQgPDwgIkhlbGxvICAoIGJhciAtICI8PGlkPDwiKSI8PHN0ZDo6ZW5kbDsKfQogICAgdmlydHVhbCB+YmFyKCkgb3ZlcnJpZGV7CiAgICAgICAgc3RkOjpjb3V0IDw8ICJCeWUgYnllICggYmFyIC0gIjw8aWQ8PCIpIjw8c3RkOjplbmRsOwogICAgfQp9OwoKaW50IG1haW4oKQp7CiAgICBjb25zdCBpbnQgc2l6ZSA9IDU7CiAgICBmb28gKnRlc3Rbc2l6ZV07CiAgICBmb3IoaW50IGkgPSAwOyBpIDwgc2l6ZTsgKytpKQogICAgICAgIHRlc3RbaV0gPSBuZXcgYmFyOwogICAgZm9yKGludCBpID0gMDsgaSA8IHNpemU7ICsraSkKICAgICAgIGRlbGV0ZSB0ZXN0W2ldOwp9