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; };
employee
Invariant
k == (e->salary(k))->salary()