Раздел 3.2 Технологии программирования.
Задание 3.2.1.
Постановка задачи:
Реализовать класс «одномерный массив». Под одномерным массивом будем понимать упорядоченный набор элементов одного типа ( использовать тип integer ). Предусмотреть операции работы с массивом (создание, удаление, заполнение). При инициализации массива элементы должны обнуляться. Перегрузить для класса операторы ([], ==, !=, =, <, >).
Наш массив должен:
1. обладать некоторыми знаниями о самом себе;
2. поддерживать операцию индексирования, сравнения на неравенство и равенство, присваивания и операцию сравнения больше и меньше;
3. мы должны реализовать базовые операции работы с массивом, а именно: возможность задать размер массива при его создании. (Речь не идет о том, чтобы знать эту величину на этапе компиляции);
4. массив, по умолчанию, инициализируется нулевыми значениями;
Описание алгоритма:
Определение класса состоит из двух частей: заголовка, включающего ключевое слово class, за которым следует имя класса, и тела, заключенного в фигурные скобки. После такого определения должны стоять точка с запятой или список объявлений:
class Screen { /* ... */ } myScreen, yourScreen; Внутри тела объявляются данные-члены и функции-члены и указываются уровни доступа к ним (открытый, закрытый). Деление на открытый интерфейс и скрытую реализацию называют сокрытием информации, или инкапсуляцией. эта концепция помогает решить следующие проблемы:
• если мы меняем или расширяем реализацию класса, то изменения можно выполнить так, что большинство пользовательских программ, использующих наш класс, их “не заметят”: модификации коснутся лишь скрытых членов;
• если в реализации класса обнаруживается ошибка, то обычно для ее исправления достаточно проверить код, составляющий именно скрытую реализацию, а не весь код программы, где данный класс используется.
Сокрытие информации – это формальный механизм, предотвращающий прямой доступ к внутреннему представлению типа класса из функций программы. Ограничение доступа к членам задается с помощью секций тела класса, помеченных ключевыми словами public, private и protected – спецификаторами доступа. Члены, объявленные в секции public, называются открытыми, а объявленные в секциях private и protected соответственно закрытыми или защищенными.
Таким образом, тело класса определяет список его членов. Тело класса определяет отдельную область видимости. Объявление членов внутри тела помещает их имена в область видимости класса.
Для работы с массивом мы индексируем (нумеруем) его элементы, а доступ к ним осуществляется с помощью операции взятия индекса.
Для создания массива используется конструктор, по умолчанию состоящий из 12 элементов. В этом конструкторе имеется возможность задания числа элементов массива (элементы массива обнуляются). Конструктор – это определенная проектировщиком функция (возможно, перегруженная), которая автоматически применяется к каждому объекту класса перед его первым использованием. Конструктор по умолчанию – это конструктор, для которого не требуется задавать начальных значений. Как правило, он инициализирует объект таким образом, чтобы позже можно было понять, что реальной инициализации еще не проводилось. Применяется в ситуации, когда нам нужен объект класса, но его начальные значения мы еще не знаем. Копирующий конструктор – это конструктор, который вызывается всякий раз, когда один объект инициализируется другим объектом того же класса.
Для удаления массива реализован деструктор.
Перегрузка операторов позволяет программисту вводить собственные версии предопределенных операторов для операндов типа классов.
Перегрузка оператора присваивания реализована следующим образом:
- передаём функции константную ссылку на объект типа IntArray (объект стоящий справа). Результатом работы функции является ссылка на объект типа IntArray;
- удаляем объект типа IntArray (стоящий слева от оператора «=»);
- присваиваем размеру массива слева размер массива стоящего справа
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.