#include <iostream>
using namespace std;
struct B {
virtual void f(){}
};
struct C: public B {
virtual void f(int) {}
};
struct D: public C {
};
int main() {
D d;
d.f(10);
d.f();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IEIgewoJdmlydHVhbCB2b2lkIGYoKXt9Cn07CgpzdHJ1Y3QgQzogcHVibGljIEIgewoJdmlydHVhbCB2b2lkIGYoaW50KSB7fQp9OwoKc3RydWN0IEQ6IHB1YmxpYyBDIHsKCQp9OwoJCgppbnQgbWFpbigpIHsKCUQgZDsKCWQuZigxMCk7CglkLmYoKTsKCXJldHVybiAwOwp9
prog.cpp: In function ‘int main()’:
prog.cpp:20:6: error: no matching function for call to ‘D::f()’
d.f();
^
prog.cpp:9:15: note: candidate: virtual void C::f(int)
virtual void f(int) {}
^
prog.cpp:9:15: note: candidate expects 1 argument, 0 provided