#include <cstdio>
struct widget
{
virtual void foo() const { std::puts("widget"); }
};
struct gadget : widget
{
void foo() const override { std::puts("gadget"); }
};
int main()
{
gadget g;
g.foo();
g.widget::foo();
}
I2luY2x1ZGUgPGNzdGRpbz4KCnN0cnVjdCB3aWRnZXQKewoJdmlydHVhbCB2b2lkIGZvbygpIGNvbnN0IHsgc3RkOjpwdXRzKCJ3aWRnZXQiKTsgfQp9OwoKc3RydWN0IGdhZGdldCA6IHdpZGdldAp7Cgl2b2lkIGZvbygpIGNvbnN0IG92ZXJyaWRlIHsgc3RkOjpwdXRzKCJnYWRnZXQiKTsgfQp9OwoKaW50IG1haW4oKQp7CglnYWRnZXQgZzsKCWcuZm9vKCk7CglnLndpZGdldDo6Zm9vKCk7Cn0K