1struct A { 2 virtual A* f () { return this; } 3}; 4 5struct B: public A { 6 virtual B* f () { return 0; } 7}; 8 9int main () 10{ 11 A* ap = new B; 12 return (ap->f () != 0); 13} 14