#includeClick here for the solutionclass X { public: virtual void f1() { cout << "X::f1"; } void f2() { cout << "X::f2"; } virtual void f3() { f1(); cout << " "; f2(); } }; class Y : public X { public: virtual void f1() { cout << "Y::f1"; } void f2() { cout << "Y::f2"; } }; int main () { X *xptr = new Y; xptr->f3(); cout << endl; return 0; } // What is printed out when you execute this piece of code // X::f1 X::f2 // Y::f1 Y::f2 // X::f1 Y::f2 // Y::f1 X::f2