To radi bez ikakvih problema dok se ne nasledi klasa koja ima takav set metoda i dok se ne override-uje neka takva metoda.
Evo primera:
class A{
public:
virtual void fn(int x, int y){}
protected:
virtual void fn(int x, int y, int z){}
};
class B:public A{
protected:
//override
virtual void fn(int x, int y, int z){}
};
int main()
{
A a;
a.fn(3,4);
B b;
b.fn(2,3); //error C2660: 'B::fn' : function does not take 2 arguments
}