所谓函数遮蔽,即基类有个函数m,而子类也有个函数m,那么子类的函数m就“遮蔽“了基类的m,不管它们的函数签名是否相同。
class B{
public:
void m(){...}
};
class D: public B{
public:
void m(int a){...}
};
main(void){
D d1;
d1.m(1); //OK
d2.m(); //Error
}
要想实现重载,就必须子类和基类拥有相同的函数签名的函数,并且为virtual