Evo jedne zagonetke. Poznato je da moze da se deklarise vise metoda (funkcija) sa istim imenom, a sa razlicitim argumentima.
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:
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:
Code:
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
}
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
}