Создать базовый класс ListPointer (Список данных на базе адресных указателей, абстрактный, контейнер, шаблон); создать производные класс АrrОfSize (Массив заданного размера, контейнер, шаблон); реализовать обязательная операция (метод): 1) BasicOperations: Базовые операции опрос размера списка, очистка списка, проверка списка на пустоту, опрос наличия элемента с заданным значением, доступ к значению элемента с заданным номером в списке, получение позиции в списке элемента с заданным значением, включение нового элемента в позицию с заданным номером, удаление элемента из позиции с заданным номером; итератор для доступа к элементам списка с операциями: установка на начало списка, проверка конца списка, доступ к значению текущего элемента, переход к следующему элементу списка, переход к предыдущему элементу списка (для списков на базе массива или двусвязных структур) 2)MSDSort( ): алгоритм MSD-поразрядной сортировки 3)bool operator == (сравнение списков на равенство)(DataArray &(Массив данных, абстрактный, контейнер, шаблон)) bool operator > (сравнение списков)(DataArray &(Массив данных, абстрактный, контейнер, шаблон) ) 3)Предусмотреть графический интерфейс в программе-клиенте системы классов, позволяющий продемонстрировать все методы объектов иерархии классов. предусмотреть контроль ввода. Задача заключается в создании базового класса ListPointer и производного класса АrrОfSize. Реализовать обязательные операции BasicOperations, MSDSort( ), bool operator == (DataArray &) bool operator > (DataArray & ).