У меня есть класс, который представляет целые числа как разность двух целых чисел i
и j
. Единственное важное значение (для пользователя) класса - это разница i-j
. Я хочу иметь возможность использовать функции (в примере ниже функции normalize
), которые имеют квалификатор const
, которые изменяют внутренние компоненты класса, но не изменяют разницу i-j
.
Каков наилучший подход для этого?
class negnum {
public:
int get(void){ return i-j; }
void set(int val){ i=val; j=0; }
int normalize() const {i=i-j; j=0; }
/* other functions working on i and j*/
private:
int i;
int j;
}
Поскольку многие комментарии предлагают мне просто сохранить разницу: Моя настоящая проблема связана с реализацией конечно поддерживаемых последовательностейгде это простое решение невозможно.