同名隐藏:
class A
public:
void f();
};
class B:public A
{
public:
void f();
};
int main()
{
A a;
B b;
b.f();//B::f,同名隐藏(默认自己的f),从基类继承的同名函数被隐藏
b.A::f();//A::f
}
同名覆盖:
前提:向上转型
ps:函数前面加virtual
1)成员函数
2)非静态函数
3)非构造函数
描述:子类函数体覆盖基类函数体
class A
{public:
virtual void f();
};class B:public A
{
public:
void f();//也为virtual
};
int main()
{
B b;
A &ra=b;
b.f();//B::f
return 0;
}