C++成员函数继承后的调用顺序
各位谁能帮忙详细解释一下以下程序,非常感谢!
class Base
{
public:
virtual void f( int iParam){
cout << "Base::f(int)" << endl;
};
virtual void g( int iParam){
cout << "Base::g(int)" << endl;
};
};
class Derived: public Base
{
public:
void f( float fParam){
cout << "Derived::f(float)" << endl;
};
static void g( int iParam){
cout << "Derived::g(int)" << endl;
};
};
int _tmain(int argc, _TCHAR* argv[])
{
Base b;
Derived d;
Base* pb = new Derived;
d.f(10);
pb->f(1.0);
pb->g(10);
delete pb;
return 0;
}
输出结果是:( )
(A) Base::f(int) (B) Derived::f(float)
Derived::f(float) Base::f(float)
Derived::g(int) Derived::g(int)
(C) Base::f(int) (D) Derived::f(float)
Derived::f(float) Base::f(int)
Base::g(int) Base::g(int)