#include<iostream>
using namespace std;
class A{
public:
virtual void print(int a){
cout<<"A print !"<<endl;
}
};
class B:public A{
public:
void print(int a, int b){
cout<<"B print !"<<endl;
}
};
int main(){
B *a=new B();
a->print(2);//error C2660: “B::print”: 函数不接受 1 个参数
return 0;
}
如例子所示,如果子类中没有基类虚函数的重写,而是有重载,使用子类对象引用/指针调用时将自动隐藏(屏蔽)同名的基类中的虚函数。
调用可以使用基类指针或者作用域操作符访问:1. A *a = new B(); a->print(2); 2.a->A::print(2);