Главная arrow С++ (часть 4) arrow Функции begin() и end()

Функции begin() и end()

функции begin о и end(), показанные далее, подобны их дубликатам из библиотеки STL.
// возвращает Iter для начала выделенной памяти. Iter<T> begin()  { int size;
if(isArray) size = arraySize; else size = 1;
return Iter<T>(addr, addr, addr + size);
}
// Возвращает Iter для элемента, следующего за последним элементом // распределенного в памяти массива. Iter<T> end О  { int size;
if (isArray) size = arraySize; else size = 1;
return Iter<T>(addr + size, addr, addr + size);
}
Функция begin о возвращает объект типа iter, указывающий на начало размещенного массива, чей адрес хранится в поле addr. Функция end о возвращает итератор iter, ссылающийся на элемент, следующий за последним элементом распределенного в памяти массива. Хотя ничто не мешает указателю типа GCPtr, ссылающемуся на одиночный объект, вызвать эти функции, их задача — обрабатывать размещенные в динамической памяти массивы (получение итератора iter для одиночного объекта безвредно, только лишено смысла).