#include <iostream>
class Base {
public:
static void fun() {
std::cout << "Base::fun()\n";
}
};
class Derived1 : public Base {
};
class Derived2 : public Base {
public:
static void fun() {
std::cout << "Derived2::fun()\n";
}
};
int main() {
Base::fun();
Derived1::fun();
Derived2::fun();
Derived2::Base::fun();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKY2xhc3MgQmFzZSB7CnB1YmxpYzoKCiAgc3RhdGljIHZvaWQgZnVuKCkgewogICAgc3RkOjpjb3V0IDw8ICJCYXNlOjpmdW4oKVxuIjsKICB9Cn07CgpjbGFzcyBEZXJpdmVkMSA6IHB1YmxpYyBCYXNlIHsKCn07CgpjbGFzcyBEZXJpdmVkMiA6IHB1YmxpYyBCYXNlIHsKcHVibGljOgoKICBzdGF0aWMgdm9pZCBmdW4oKSB7CiAgICBzdGQ6OmNvdXQgPDwgIkRlcml2ZWQyOjpmdW4oKVxuIjsKICB9Cn07CgppbnQgbWFpbigpIHsKCiAgQmFzZTo6ZnVuKCk7CgogIERlcml2ZWQxOjpmdW4oKTsKCiAgRGVyaXZlZDI6OmZ1bigpOwoKICBEZXJpdmVkMjo6QmFzZTo6ZnVuKCk7CgkKICByZXR1cm4gMDsKfQ==