关于虚函数重载后的继承问题
以下案例,a类有重载的set函数,b类重写a类的set()的虚函数,但没有重写set(char *)
为何在b类的实例中调用set(char *)函数编译会找不到此函数?
#include "stdafx.h"
class a
{
public:
virtual int set();
virtual int set(char *);
};
class b
{
public:
virtual int set();
};
int a::set()
{
return 0;
}
int a::set(char *)
{
return 0;
}
int b::set()
{
return 0;
}
int _tmain(int argc, _TCHAR* argv[])
{
b bb;
bb.set("");
return 0;
}
class a
{
public:
virtual int set();
virtual int set(char *);
};
class b : public a
{
public:
using a::set;
virtual int set();
};
int a::set()
{
return 0;
}
int a::set(char *)
{
return 0;
}
int b::set()
{
return 0;
}
int main()
{
b bb;
bb.set("");
return 0;
}
b obj;
a& base = obj;
base.set("");
class a
{
public:
virtual int set();
virtual int set(char *);
};
class b : public a
{
public:
int set();
int set(char *);
};
int a::set()
{
return 0;
}
int a::set(char *)
{
return 0;
}
int b::set()
{
return 0;
}
int b::set(char *)
{
return 0;
}
int main()
{
b bb;
bb.set("");
return 0;
}