Invariant properties -- algebraic laws

  class employee {
  public:
  employee( int n = 0 ) : sal(n) { }
  employee* salary(int n) { sal = n; return this; }
  virtual long salary() { return sal; }
  protected:
  int sal;
  };
  

Invariant

     k == (e->salary(k))->salary() 
  

slide: Invariant properties as algebraic laws