struct Base
{
virtual ~Base() = default;
virtual void foo() = delete;
virtual void bar() = 0;
};
struct Derived : public Base
{
virtual void foo() = delete;
virtual void bar() {}
};
int main()
{
Base *b = new Derived;
b->bar();
delete b;
}
c3RydWN0IEJhc2UKewogICAgdmlydHVhbCB+QmFzZSgpID0gZGVmYXVsdDsKCiAgICB2aXJ0dWFsIHZvaWQgZm9vKCkgPSBkZWxldGU7CiAgICB2aXJ0dWFsIHZvaWQgYmFyKCkgPSAwOwp9OwpzdHJ1Y3QgRGVyaXZlZCA6IHB1YmxpYyBCYXNlCnsKICAgIHZpcnR1YWwgdm9pZCBmb28oKSA9IGRlbGV0ZTsKICAgIHZpcnR1YWwgdm9pZCBiYXIoKSB7fQp9OwoKaW50IG1haW4oKQp7CglCYXNlICpiID0gbmV3IERlcml2ZWQ7CgliLT5iYXIoKTsKCWRlbGV0ZSBiOwp9