The basic idea is to unambiguously state the external behavior of each member function in some well-known location, then for other programmers to rely on this specification rather than digging into the code and relying on the implementation. This technique is sometimes called programming by contract, and it is extremely valuable whenever a software system is large enough that most programmers can't remember all the ifs, ands and buts of every member function of every class. |