关于派生类调用基类同名函数的问题
代码如下:
class Base
{
virtual void SetDistance(int dist);
void SetDistance(int p1,int p2) {
SetDistance(p2-p1);
}
};
class Derive : public Base
{
int distance;
void SetDistance(int dist) {
distance=dist;
}
};
int main(int argc, char* argv[])
{
int a=1,b=3;
Derive d;
d.SetDistance(a,b); //这一句不能通过编译“error C2660: 'SetDistance' : function does not take 2 parameters”
return 0;
}
除了将函数改名以外,最好的解决办法是什么?