父类
class Base
{
private:
int x;
public:
virtual void mf1() = 0;
virtual void mf2();
void mf3();
void mf3(int a );
};
子类
class Derived :public Base
{
public:
virtual void mf1();
void mf4();
void mf3();
};
main函数
int main()
{
Derived a ;
a.mf1();
a.mf4();
a.mf3(4);
a.mf3();
a.mf2();
}
运行到mf3(4)会报错,因为derived的mf3覆盖了父类总的所有mf3方法。
解决方式
class Derived :public Base
{
public:
using Base::mf3;
virtual void mf1();
void mf4();
void mf3();
};
using Base::mf3;
再次运行main函数,运行正常。