下列程序的运行结果是()
class A { public: void f() { cout << "A::f()"; } }; class B: public A { public: void f() { cout << "B::f()"; } }; int main() { B b; b.f(); return 0; }
如果子类的函数与父类的名称相同,但是参数不同,父类函数被隐藏(重定义)
如果子类函数与父类函数的名称相同&&参数也相同&&但是父类函数没有virtual,父类函数被隐藏
int main() { B b; A &p = b; p.f(); // 此时因为A中没有将f声明为虚函数,那么就会调用A中的fun函数 return 0; }而本题,是将A中的成员方法给隐藏了