#include <iostream>
using namespace std;
#include <memory>
struct Base
{
virtual void foo() {
cout<<"base\n";
};
};
struct Derived : Base
{
virtual void foo() override {
cout <<"derived\n";
};
};
int main()
{
std::unique_ptr<Base> pb = std::make_unique<Derived>();
pb->foo();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKI2luY2x1ZGUgPG1lbW9yeT4KCnN0cnVjdCBCYXNlCnsKICAgIHZpcnR1YWwgdm9pZCBmb28oKSB7CiAgICAgICAgY291dDw8ImJhc2VcbiI7CiAgICB9Owp9OwoKc3RydWN0IERlcml2ZWQgOiBCYXNlCnsKICAgIHZpcnR1YWwgdm9pZCBmb28oKSBvdmVycmlkZSB7CiAgICAgICAgY291dCA8PCJkZXJpdmVkXG4iOwogICAgfTsKfTsKCmludCBtYWluKCkKewogICAgc3RkOjp1bmlxdWVfcHRyPEJhc2U+IHBiID0gc3RkOjptYWtlX3VuaXF1ZTxEZXJpdmVkPigpOwogICAgcGItPmZvbygpOwogICAgcmV0dXJuIDA7Cn0=