Изменение const членов класса с учетом некоторых ограничений - PullRequest
1 голос
/ 14 октября 2019

У меня есть класс, который представляет целые числа как разность двух целых чисел 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;
}

Поскольку многие комментарии предлагают мне просто сохранить разницу: Моя настоящая проблема связана с реализацией конечно поддерживаемых последовательностейгде это простое решение невозможно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...