Объект как двумерный массив, с помощью перегрузки операции ( )

Эта статья ориентирована на тех, у кого уже есть опыт перегрузок операций и понимание механизма перегрузки. В статье демонстрируется способ использования перегрузки ( ) для создания объектов, выполняющих роль массивов.
Для понимания темы нужно знать:

  • Важно понимать взятую для примера основу:


В заложенную основу добавим метод перегрузки операции ( ) и заполним массивоподобный объект значениями, после чего выведем значения на экран. Для собственного удобства добавим ещё два метода, отдающие нам количества, заложенные для массива, обёрнутого классом. Одна из проблем, с которой можно столкнуться, это запутаться в названиях переменных. В идеале у вас должен вырабатываться собсвтенный стиль, но если вам повезёт и позднее вы устроитесь программистом, то там могут быть свои правила относительно используемого стиля кода: единственного универсального стиля нет. Просто постарайтесь не запутаться сейчас в использованных мной похожих названиях. Для элементов класса я использую префикс m_, для параметров функций использую окончание в иде чёрточки, а для названий функций прямые названия. Это мой стиль относительно показываемого кода.
Чтобы не происходило new int[0], я в классе использовал дополнительные переменные, от которых пляшем при управлении памятью. Делать их в два раза больше от актуальных размеров сейчас пока что не имеет смысла. Но при программировании динамических массивов обычно резервируют несколько дополнительных ячеек, чтобы количество операций по перераспределению памяти немного сократить. Коли так вышло, что я использовал резерв, то и сделал ближе к тому как оно будет выглядеть при динамизации класса. Динамизаци класса не описывается, это если кто-то вдруг будет сам себе развивать, то должен понимать, что использовать резервы полезно.
Теперь обновим наш класс и используем наши обновки:

Конечно, мы не используем сечас квадратных скобок вв качестве операции индексации, но это не мешает нам использовать объект как массив, что достаточно нагялно отображает работа программы.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Поиск

 
     

Случайная книга в электронном формате

https://www.litres.ru/dhananya-gadre/zanimatelnye-proekty-na-baze-mikrokontrollerov-tinyavr-7012802/?lfrom=15589587
Яндекс.Метрика