Virtual functions and recursion
class P {\fbox{P}
public: virtual int m(int i) { cout << i; return i==0 ? i : m(i-1); } }; class C : public P {\fbox{C}
public: virtual int m(int i) { cout << "start"; return i<0 ? 0 : P::m(i); } };
class P {\fbox{P}
public: virtual int m(int i) { cout << i; return i==0 ? i : m(i-1); } }; class C : public P {\fbox{C}
public: virtual int m(int i) { cout << "start"; return i<0 ? 0 : P::m(i); } };