#include <iostream>
using namespace std;
class PublicAbstract {
public:
PublicAbstract() {
}
virtual void doThings() =0;
};
class ProtectedAbstract {
protected:
ProtectedAbstract() {
}
public:
virtual void doMoreThings() =0;
};
class B: public PublicAbstract {
public:
void doThings() {
}
};
class C: public ProtectedAbstract {
public:
void doMoreThings() {
}
};
int main() {
B b;
C c;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgUHVibGljQWJzdHJhY3QgewpwdWJsaWM6CglQdWJsaWNBYnN0cmFjdCgpIHsKCQkKCX0KCQoJdmlydHVhbCB2b2lkIGRvVGhpbmdzKCkgPTA7Cn07CgpjbGFzcyBQcm90ZWN0ZWRBYnN0cmFjdCB7CnByb3RlY3RlZDoKCVByb3RlY3RlZEFic3RyYWN0KCkgewoJCQoJfQoJCnB1YmxpYzoKCXZpcnR1YWwgdm9pZCBkb01vcmVUaGluZ3MoKSA9MDsKfTsKCmNsYXNzIEI6IHB1YmxpYyBQdWJsaWNBYnN0cmFjdCB7CnB1YmxpYzoKCXZvaWQgZG9UaGluZ3MoKSB7CgkJCgl9CQp9OwoKY2xhc3MgQzogcHVibGljIFByb3RlY3RlZEFic3RyYWN0IHsKcHVibGljOgoJdm9pZCBkb01vcmVUaGluZ3MoKSB7CgkJCgl9CQp9OwoKaW50IG1haW4oKSB7CglCIGI7CglDIGM7CglyZXR1cm4gMDsKfQ==