Для себя Создать базовый класс Array с полями: массив типа unsigned char и поле для xpaнения количества элементов у текущего объекта-массива. Максимально возможныј размер массива задается статической константой. Реализовать конструктор инициализации, задающий количество элементов и начальное значение (по умолчанию 0). Реализовать метод доступа к элементу, перегрузив операцию индексирования []. При этом должна выполняться проверка индекса на допустимость (задание 1.8). Реализовать в классе Array виртуальную функцию поэлементного сложения массивов. Реализовать два класса, переопределив виртуальную функцию сложения. Вызывающая программа должна продемонстрировать все варианты вызова виртуальных функций. Создать класс Нех (задание 2.3) и класс BitString (задание 2.1). 3. Создать класс Нех для работы с беззнаковыми целыми шестнадцатеричными числами, используя для представления числа массив из 100 элементов типа unsigned char, каждый из которых является шестнадцатеричной цифрой. Младшая цифра имеет меньший индекс. Реальный размер массива задается как аргумент конструктора инициализации. Реализовать арифметические операции, аналогичные встроенным для целых в С++, и операции сравнения. 1. Создать класс BitString для работы с битовыми строками не более чем из 100 бит. Битовая строка должна быть представлена массивом типа unsigned char, каждый элемент которого принимает значение 0 или 1. Реальный размер массива задается как аргумент конструктора инициализации. Должны быть реализованы все традиционные операции для работы с битовыми строками: and, оr, xor, not. Реализовать сдвиг влево и сдвиг вправо на заданное количество битов.