Question du test C++ - Les bases

Que fait le code suivant ? class A { public: A() { f(); } virtual void f() { cout << "A" << endl; } }; class B : public A { public: void f() { cout << "B" << endl; } }; int main() { A a; B b; A* pa(&b); pa->f(); return 0; }