Virtual functions -- dispatching
class A {\fbox{A}
public: virtual void operator()() { cout << "A"; } }; class B : public A {\fbox{B}
public: virtual void operator()() { cout << "B"; } }; // A* a = new B(); (*a)(); // produces: B
class A {\fbox{A}
public: virtual void operator()() { cout << "A"; } }; class B : public A {\fbox{B}
public: virtual void operator()() { cout << "B"; } }; // A* a = new B(); (*a)(); // produces: B