Consider the following example:
class A { public: int foo() { return 1; } int bar() { return foo(); } }; class B : public A { int foo() { return