class A {  
\fbox{invariant A: n >= 0 }
public: A() { n = 0; } int value() { return next(n); } void strange() { next(-3); } protected: virtual int next( int i ) { return n = n + i * i; } int n; };
  class B : public A { 
\fbox{not \ifsli{ inv A }{invariant A } }
public: B() : A() { } protected: virtual int next( int i ) { return n = n + (n + 1) * i; } };

slide: Violating the invariant