|
|
 |
|
|
|
|
131: ASSERT(Invariants());
132: }
133:
134:
135: bool String::Invariants() const
136: {
137: #ifdef SHOW_INVARIANTS
138: cout << String OK ;
139: #endif
140: return ( (itsLen && itsString) ¦¦ (!itsLen && !itsString) );
141: }
142:
143: class Animal
144: {
145: public:
146: Animal():itsAge(1),itsName(John Q. Animal)
147: {ASSERT(Invariants());}
148: Animal(int, const String&);
149: ~Animal(){}
150: int GetAge() { ASSERT(Invariants()); return itsAge;}
151: void SetAge(int Age)
152: {
153: ASSERT(Invariants());
154: itsAge = Age;
155: ASSERT(Invariants());
156: }
157: String& GetName() { ASSERT(Invariants()); return itsName; }
158: void SetName(const String& name)
159: {
160: ASSERT(Invariants());
161: itsName = name;
162: ASSERT(Invariants());
163: }
164: bool Invariants();
165: private:
166: int itsAge;
167: String itsName;
168: };
169:
170: Animal::Animal(int age, const String& name):
171: itsAge(age),
172: itsName(name)
173: {
174: ASSERT(Invariants());
175: }
176:
177: bool Animal::Invariants()
178: { |
|
|
|
 |
|
|
|
|
continues |
|
|
|
|
|