Listing 1: Virtual reality

#include <iostream>
using namespace std;

class A
    {
public:
    void do_f()
        {
        f();
        }
    virtual void f()
        {
        cout << this << endl;
        cout << "A::f" << endl;
        cout << endl;
        }
    };

class B : public A
    {
public:
    virtual void f()
        {
        cout << this << endl;
        cout << "B::f" << endl;
        cout << endl;
        }
    };

int main()
    {
    B b;
    b.f();
    b.do_f();
    }
— End of Listing —