#include <iostream>
class Base{
public:
virtual void foo() final {
std::cout << "Base.foo()\n" << std::endl;
}
};
class Derived: public Base{
public:
void foo() const
{
std::cout << "Derived.foo()\n" << std::endl;
}
};
int main()
{
Base base;
Derived derived;
base.foo();
derived.foo();
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKY2xhc3MgQmFzZXsKICAgIHB1YmxpYzogIAogICAgdmlydHVhbCB2b2lkIGZvbygpIGZpbmFsIHsKICAgICAgICBzdGQ6OmNvdXQgPDwgIkJhc2UuZm9vKClcbiIgPDwgc3RkOjplbmRsOwogICAgfQp9OwoKY2xhc3MgRGVyaXZlZDogcHVibGljIEJhc2V7IAogICAgcHVibGljOgogICAgdm9pZCBmb28oKSBjb25zdAogICAgewogICAgICAgIHN0ZDo6Y291dCA8PCAiRGVyaXZlZC5mb28oKVxuIiA8PCBzdGQ6OmVuZGw7CiAgICB9ICAgCn07CgoKaW50IG1haW4oKQp7CiAgICBCYXNlIGJhc2U7CiAgICBEZXJpdmVkIGRlcml2ZWQ7IAogICAgYmFzZS5mb28oKTsKICAgIGRlcml2ZWQuZm9vKCk7Cn0=