I saw the C FAQ print version of the C FAQ, and the Chinese name is C classic question and answer. It is said that if the programmer is not written to automatically test your object (referred to as self-test object), he maintains the debugging code is climbing on the glass. The so-called self-test object is to automatically test your own uncarreated objects of INVARIANT. An example of self-test object: #include class ctestme {public: ctestme () {// init myself // ... test_invariant (); return;} ~ ctestme () {test_invariant (); // design_invariant (); // destroy me return Test_invarivant (); {assert (...); assert (...); assert (...);}} btw: thus thinking, some "proficient" for object-oriented programmers No code (such as a function, a small segment algorithm) is self-test (herein, the code, not means a person). I am a little doubt whether they understand the basic principles of programming.