#include <cstdio>
 
class BaseClass
{
    public:
        void func(int a){puts("BaseClass::func(int)");};
        void func(int a, int b){puts("BaseClass::func(int, int)");};
        void func(int a, int b, int c){puts("BaseClass::func(int, int, int)");};
};
 
class DerivedClass : public BaseClass
{
    public:        
        void func(int a){puts("DerivedClass::func(int)");}
        using BaseClass::func;
};
 
int main()
{           
    DerivedClass obj;
    obj.func(0);
    obj.func(0, 0);     // error - not any more
    obj.func(0, 0, 0);  // error - not any more      
 
    return 0;
}
				I2luY2x1ZGUgPGNzdGRpbz4KCmNsYXNzIEJhc2VDbGFzcwp7CiAgICBwdWJsaWM6CiAgICAgICAgdm9pZCBmdW5jKGludCBhKXtwdXRzKCJCYXNlQ2xhc3M6OmZ1bmMoaW50KSIpO307CiAgICAgICAgdm9pZCBmdW5jKGludCBhLCBpbnQgYil7cHV0cygiQmFzZUNsYXNzOjpmdW5jKGludCwgaW50KSIpO307CiAgICAgICAgdm9pZCBmdW5jKGludCBhLCBpbnQgYiwgaW50IGMpe3B1dHMoIkJhc2VDbGFzczo6ZnVuYyhpbnQsIGludCwgaW50KSIpO307Cn07CgpjbGFzcyBEZXJpdmVkQ2xhc3MgOiBwdWJsaWMgQmFzZUNsYXNzCnsKICAgIHB1YmxpYzogICAgICAgIAogICAgICAgIHZvaWQgZnVuYyhpbnQgYSl7cHV0cygiRGVyaXZlZENsYXNzOjpmdW5jKGludCkiKTt9CiAgICAgICAgdXNpbmcgQmFzZUNsYXNzOjpmdW5jOwp9OwoKaW50IG1haW4oKQp7ICAgICAgICAgICAKICAgIERlcml2ZWRDbGFzcyBvYmo7CiAgICBvYmouZnVuYygwKTsKICAgIG9iai5mdW5jKDAsIDApOyAgICAgLy8gZXJyb3IgLSBub3QgYW55IG1vcmUKICAgIG9iai5mdW5jKDAsIDAsIDApOyAgLy8gZXJyb3IgLSBub3QgYW55IG1vcmUgICAgICAKCiAgICByZXR1cm4gMDsKfQ==