Спроектировать и реализовать класс BigInt
, позволяющий
хранить целые числа произвольной длины, и производить набор основных операций с ними.
Замечание | |
---|---|
Понятно, что фактически размер чисел в любом случае будет ограничен доступной памятью, идея в том, чтобы размер чисел не ограничивался самим классом. |
В классе должны быть определены различные конструкторы (по умолчанию, по строке (char *), по целому числу встроенного типа (например, long), конструктор копирования).
Должны быть перегружены следующие операторы: +
,
++
(префиксный и постфиксный), --
(префиксный и постфиксный),
-
, *
, +=
, -=
,
*=
, ==
, !=
, <
,
>
, <=
, >=
,
<<
(вывод в поток типа ostream
).
Замечание | |
---|---|
Деления в списке операторов, подлежащих реализации, нет! |
Для защиты лабораторной работы необходимо представить:
Разработанный класс BigInt
должен допускать такое использование:
/*...*/ int main() { BigInt a; BigInt b("-1206"); BigInt c(1207); a = c; if (a != c) cout << "Something wrong\n"; else cout << "As expected\n"; if (b < c) cout << "As expected\n"; else cout << "Something wrong\n"; cout << b++ << endl << c-1 << endl << (b+=7) << endl; return 0; }