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