#include <iostream>
using namespace std;
class Pocisk{
public:
virtual Pocisk* clone() = 0;
virtual ~Pocisk() {}
};
class Pochodna1 : public Pocisk {
public:
virtual Pochodna1* clone()
{
return new Pochodna1(*this);
}
};
int main() {
Pocisk* p1 = new Pochodna1();
Pocisk* p2 = p1->clone();
delete p1;
delete p2;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgUG9jaXNrewogICAgcHVibGljOgogICAgdmlydHVhbCBQb2Npc2sqIGNsb25lKCkgPSAwOwogICAgdmlydHVhbCB+UG9jaXNrKCkge30KfTsKIApjbGFzcyBQb2Nob2RuYTEgOiBwdWJsaWMgUG9jaXNrIHsKICAgIHB1YmxpYzoKICAgIHZpcnR1YWwgUG9jaG9kbmExKiBjbG9uZSgpCiAgICB7CiAgICAgIHJldHVybiBuZXcgUG9jaG9kbmExKCp0aGlzKTsKICAgIH0KfTsKIAppbnQgbWFpbigpIHsKICAgIFBvY2lzayogcDEgPSBuZXcgUG9jaG9kbmExKCk7CiAgICBQb2Npc2sqIHAyID0gcDEtPmNsb25lKCk7CiAgICBkZWxldGUgcDE7CiAgICBkZWxldGUgcDI7CiAgICByZXR1cm4gMDsKfQ==