Завершено
3
20.04.2025, 12:44
29.05.2025, 08:24
Реализовать класс LongInteger для работы с очень длинными 
(> LLONG_MAX) знаковыми целыми числами.
Реализовать класс LongInteger .
public методы класса фиксированы, 
кроме спецификаторов. 
Т.е. нельзя менять названия методов, а также типы и количество аргументов.
НО в этих методах отсутствуют спецификаторы const и static, 
которые были удалены намеренно. Их необходимо вернуть на место.
private поля и private методы можно добавлять в класс LongInteger. 
//LongInteger.hpp
class LongInteger {
public:
  LongInteger();
  LongInteger(int i);
  LongInteger(const char* iStr);
  LongInteger(const LongInteger& val);
  ~LongInteger();
  size_t ToString(char* buff, size_t buff_lenght);
  LongInteger& operator= (int val);
  LongInteger& operator+=(int val);
  LongInteger& operator-=(int val);
  LongInteger& operator*=(int val);
  LongInteger& operator/=(int val);
  LongInteger& operator= (const LongInteger &val);
  LongInteger& operator+=(const LongInteger &val);
  LongInteger& operator-=(const LongInteger &val);
  LongInteger& operator*=(const LongInteger &val);
  LongInteger& operator/=(const LongInteger &val);
  bool operator==(const LongInteger &right);
  bool operator!=(const LongInteger &right);
  bool operator>=(const LongInteger &right);
  bool operator<=(const LongInteger &right);
  bool operator>(const LongInteger &right);
  bool operator<(const LongInteger &right);
  LongInteger operator+(const LongInteger &right);
  LongInteger operator-(const LongInteger &right);
  LongInteger operator*(const LongInteger &right);
  LongInteger operator/(const LongInteger &right);
  LongInteger operator%(const LongInteger &right);
protected:
private:
};
LongInteger() -- Конструктор по умолчаниюLongInteger(int i) -- Конструктор определяющий LongInteger из знакового целого.LongInteger(const char* iStr) -- Конструктор из строкового представления целого числи по основанию 10. Кидает исключение std::invalid_argument, если строка невалидная. Пустая строка считается валидной.LongInteger(const LongInteger& val) -- Копирующий конструктор.~LongInteger() -- деструктор.size_t ToString(char* buff, size_t buff_lenght) -- Преобразует LongInteger в строковое представление целого числа по основанию 10. 
char* buff - Буфер для строки, 
size_t buff_lenght - длина буфера. 
Возвращает количество записанных в буфер байт (включая заключительный ноль). 
Если в буфере не достаточно места, в буфер ничего не записывается и возвращается количество байт, необходимое для правильного вывода (включая заключительный ноль).intLongInteger& operator= (int val) -- Оператор присваивания, аналог конструктора из целого числа. LongInteger& operator+=(int val) -- Оператор +=, прибавить...LongInteger& operator-=(int val) -- Оператор -=, отнять...LongInteger& operator*=(int val) -- Оператор *=, умножить на...LongInteger& operator/=(int val) -- Оператор /=, поделить на...LongIntegerLongInteger& operator= (const LongInteger& val) -- Оператор присваивания, аналог конструктора копирующего конструктора. LongInteger& operator+=(const LongInteger& val) -- Оператор +=, прибавить...LongInteger& operator-=(const LongInteger& val) -- Оператор -=, отнять...LongInteger& operator*=(const LongInteger& val) -- Оператор *=, умножить на...LongInteger& operator/=(const LongInteger& val) -- Оператор /=, поделить на... bool operator==(const LongInteger& right) -- Оператор ==, возвращает true если аргумент равен исходному числуbool operator!=(const LongInteger& right) -- Оператор !=, возвращает true если аргумент не равен исходному числуbool operator>=(const LongInteger &right) -- Оператор больше либо равноbool operator<=(const LongInteger &right) -- Оператор меньше либо равноbool operator>(const LongInteger &right) -- Оператор большеbool operator<(const LongInteger &right) -- Оператор меньшеLongInteger operator+(const LongInteger& right) -- Оператор сложения длинных целых чиселLongInteger operator-(const LongInteger& right) -- Оператор вычитания длинных целых чиселLongInteger operator*(const LongInteger& right) -- Оператор умножения длинных целых чиселLongInteger operator/(const LongInteger& right) -- Оператор деления длинных целых чиселLongInteger operator%(const LongInteger &right) -- Оператор остаток от деления длинных целых чиселПримечание: при делении на 0 кидать исключение std::invalid_argument.