Say we have:
Class Base { virtual void f(){g();}; virtual void g(){//Do some Base related code;} }; Class Derived : public Base { virtual
Well... I'm not sure this should compile. The following,
Base *pBase = new Derived;
is invalid unless you have:
Class Derived : public Base
Is it want you meant? If this is want you meant,
pBase->f();
Then the call stack would go like this:
Derived::f() Base::f() Derived::g()