【C++】隐藏和覆盖
隐藏: overhide 派生类中隐藏了基类中所有的同名函数
①同名、不同参
②继承关系下的不同作用域
覆盖:派生类中同名同参的虚函数覆盖基类中同名同参的虚函数
①同名同参
②继承关系下的不同作用域
③均为虚函数
隐藏:
class Base
{
public:
Base(int a) :ma(a){}
void Show()
{
std::cout << "Base::ma:" << ma << std::endl;
}
protected:
int ma;
};
class Derived :public Base
{
public:
Derived(int b) :mb(b), Base(b){}
void Show()
{
std::cout << "Derived::mb:" << mb << std::endl;
}
protected:
int mb;
};
int main()
{
Base* pb = new Derived(10);
pb->Show();
return 0;
}
运行结果:
覆盖ÿ