Today I felt like a noob:
class Base
{
public:
virtual void foo(int)=0;
virtual void foo(int, int) {}
virtual void bar() {}
};
class Derived : public Base
{
public:
virtual void foo(int) {}
};
void main()
{
Derived d;
d.bar(); // works
d.foo(1); // works
d.foo(1,2); // compiler error: no matching function call
}
I expected d to inherit foo(int, int) from Base, but it does not. So what am I missing here?