大家都知道C++中函数重载只能在同一个类中,因为子类中的函数会遮掩住父类中的同名函数。但是使用using 申明式可以使得父类中的同名函数在子类中可见,从而实现函数重载。实现代码如下所示:
#include <iostream>
using namespace std;
class Base
{
public:
void fun(int data)
{
cout<<"int"<<endl;
}
};
class Derivd:public Base
{
public:
using Base::fun;
void fun(double data)
{
cout<<"double"<<endl;
}
};
int main()
{
Derivd d;
d.fun(12);
}
这里using申明式可以使得父类中被遮掩住的同名函数在子类中可见,从而在子类中实现函数重载。