Инвариант класса — это логическое условие, которое должно всегда быть истинным для объекта класса. Обычно проверяется и поддерживается в конструкторах и методах класса.
class Rational {
int numerator;
int denominator;
void checkInvariant() {
assert(denominator != 0); // Инвариант: знаменатель не должен быть нулём
}
public:
Rational(int n, int d) : numerator(n), denominator(d) {
checkInvariant();
}
void setDenominator(int d) {
denominator = d;
checkInvariant();
}
};