class A {
public:
virtual int methodA() = 0;
virtual int methodB() = 0;
virtual int methodC() = 0;
};
class B { //B implements A.A() and A.B()
public:
int methodA() { return 0; };
int methodB() { return 0; };
};
class C : public A, public B {
public:
int methodA() { return B::methodA(); }
int methodB() { return B::methodB(); }
int methodC() { return 0; }; //C implements A.C()
};
int main()
{
C c;
return c.methodA();
}
Y2xhc3MgQSB7CnB1YmxpYzoKdmlydHVhbCBpbnQgbWV0aG9kQSgpID0gMDsKdmlydHVhbCBpbnQgbWV0aG9kQigpID0gMDsKdmlydHVhbCBpbnQgbWV0aG9kQygpID0gMDsKfTsKIApjbGFzcyBCIHsgLy9CIGltcGxlbWVudHMgQS5BKCkgYW5kIEEuQigpCnB1YmxpYzoKaW50IG1ldGhvZEEoKSB7IHJldHVybiAwOyB9OyAKaW50IG1ldGhvZEIoKSB7IHJldHVybiAwOyB9Owp9OwogCmNsYXNzIEMgOiBwdWJsaWMgQSwgcHVibGljIEIgewpwdWJsaWM6CmludCBtZXRob2RBKCkgeyByZXR1cm4gQjo6bWV0aG9kQSgpOyB9CmludCBtZXRob2RCKCkgeyByZXR1cm4gQjo6bWV0aG9kQigpOyB9CmludCBtZXRob2RDKCkgeyByZXR1cm4gMDsgfTsgLy9DIGltcGxlbWVudHMgQS5DKCkKfTsKIAppbnQgbWFpbigpCnsKICAgIEMgYzsKICAgIHJldHVybiBjLm1ldGhvZEEoKTsKfQ==