Класс CTypedPtrArray
Предоставляет типобезопасную "программу-оболочку" для объектов класса CPtrArray
или CObArray
.
Синтаксис
template<class BASE_CLASS, class TYPE>
class CTypedPtrArray : public BASE_CLASS
Параметры
BASE_CLASS
Базовый класс класса типизированного массива указателя; должен быть классом массива ( CObArray
или CPtrArray
).
TYPE
Тип элементов, хранящихся в массиве базового класса.
Участники
Открытые методы
Имя | Описание |
---|---|
CTypedPtrArray::Add | Добавляет новый элемент в конец массива. При необходимости увеличивает массив |
CTypedPtrArray::Add | Добавляет содержимое одного массива в конец другого. При необходимости увеличивает массив |
CTypedPtrArray::Copy | Копирует другой массив в этот массив. При необходимости размер массива увеличивается. |
CTypedPtrArray::ElementAt | Возвращает временную ссылку на указатель элемента в массиве. |
CTypedPtrArray::GetAt | Возвращает значение по указанному индексу. |
CTypedPtrArray::InsertAt | Вставляет элемент (или все элементы в другом массиве) по указанному индексу. |
CTypedPtrArray::SetAt | Задает значение для указанного индекса. Размер массива не увеличивается. |
CTypedPtrArray::SetAtGrow | Задает значение для указанного индекса. При необходимости размер массива увеличивается. |
Открытые операторы
Имя | Описание |
---|---|
CTypedPtrArray::operator [ ] | Получает или задает элемент с указанным индексом. |
Замечания
При использовании CTypedPtrArray
вместо CPtrArray
этого CObArray
или средство проверки типов C++ помогает устранить ошибки, вызванные несоответствием типов указателей.
Кроме того, оболочка CTypedPtrArray
выполняет большую часть приведения, которая потребуется при использовании CObArray
или CPtrArray
.
Так как все CTypedPtrArray
функции являются встроенными, использование этого шаблона значительно не влияет на размер или скорость кода.
Дополнительные сведения об использовании CTypedPtrArray
см. в статьях коллекции и классы на основе шаблонов.
Иерархия наследования
BASE_CLASS
CTypedPtrArray
Требования
Заголовок: afxtempl.h
CTypedPtrArray::Add
Эта функция-член вызывает BASE_CLASS
::Add.
INT_PTR Add(TYPE newElement);
Параметры
TYPE
Параметр шаблона, указывающий тип элемента, добавляемого в массив.
newElement
Элемент, добавляемый в этот массив.
Возвращаемое значение
Индекс добавленного элемента.
Замечания
Дополнительные замечания см. в разделе CObArray::Add.
CTypedPtrArray::Add
Эта функция-член вызывает BASE_CLASS
::Append**.
INT_PTR Append(const CTypedPtrArray<BASE_CLASS, TYPE>& src);
Параметры
BASE_CLASS
Базовый класс класса типизированного массива указателя; должен быть классом массива (CObArray или CPtrArray).
TYPE
Тип элементов, хранящихся в массиве базового класса.
src
Источник элементов, добавляемых в массив.
Возвращаемое значение
Индекс первого добавленного элемента.
Замечания
Дополнительные замечания см. в разделе CObArray::Append.
CTypedPtrArray::Copy
Эта функция-член вызывает BASE_CLASS
::Copy.
void Copy(const CTypedPtrArray<BASE_CLASS, TYPE>& src);
Параметры
BASE_CLASS
Базовый класс класса типизированного массива указателя; должен быть классом массива (CObArray или CPtrArray).
TYPE
Тип элементов, хранящихся в массиве базового класса.
src
Источник элементов, копируемых в массив.
Замечания
Дополнительные замечания см. в разделе CObArray::Copy.
CTypedPtrArray::ElementAt
Эта встроенная функция вызывает BASE_CLASS
::ElementAt.
TYPE& ElementAt(INT_PTR nIndex);
Параметры
TYPE
Параметр шаблона, указывающий тип элементов, хранящихся в этом массиве.
nIndex
Целочисленный индекс, который больше или равен 0 и меньше или равен значению , возвращаемого параметром BASE_CLASS
::GetUpperBound.
Возвращаемое значение
Временная ссылка на элемент в расположении, указанном в nIndex. Этот элемент имеет тип, указанный параметром шаблона TYPE.
Замечания
Дополнительные замечания см. в разделе CObArray::ElementAt.
CTypedPtrArray::GetAt
Эта встроенная функция вызывает BASE_CLASS
::GetAt.
TYPE GetAt(INT_PTR nIndex) const;
Параметры
TYPE
Параметр шаблона, указывающий тип элементов, хранящихся в массиве.
nIndex
Целочисленный индекс, который больше или равен 0 и меньше или равен значению , возвращаемого параметром BASE_CLASS
::GetUpperBound.
Возвращаемое значение
Копия элемента в расположении, указанном nIndex. Этот элемент имеет тип, указанный параметром шаблона TYPE.
Замечания
Дополнительные замечания см. в разделе CObArray::GetAt
CTypedPtrArray::InsertAt
Эта функция-член вызывает BASE_CLASS
::InsertAt.
void InsertAt(
INT_PTR nIndex,
TYPE newElement,
INT_PTR nCount = 1);
void InsertAt(
INT_PTR nStartIndex,
CTypedPtrArray<BASE_CLASS, TYPE>* pNewArray);
Параметры
nIndex
Целочисленный индекс, который может быть больше значения, возвращаемого CObArray::GetUpperBound.
TYPE
Тип элементов, хранящихся в массиве базового класса.
newElement
Указатель объекта, который нужно поместить в этот массив. Допускается новое значение NULL .
nCount
Количество вставок этого элемента (по умолчанию — 1).
nStartIndex
Целочисленный индекс, который может быть больше значения, возвращаемого CObArray::GetUpperBound
.
BASE_CLASS
Базовый класс класса типизированного массива указателя; должен быть классом массива (CObArray или CPtrArray).
pNewArray
Другой массив, содержащий элементы, добавляемые в этот массив.
Замечания
Дополнительные замечания см. в разделе CObArray::InsertAt.
CTypedPtrArray::operator [ ]
Эти встроенные операторы вызывают BASE_CLASS
::operator [ ].
TYPE& operator[ ](int_ptr nindex);
TYPE operator[ ](int_ptr nindex) const;
Параметры
TYPE
Параметр шаблона, указывающий тип элементов, хранящихся в массиве.
nIndex
Целочисленный индекс, который больше или равен 0 и меньше или равен значению , возвращаемого параметром BASE_CLASS
::GetUpperBound.
Замечания
Первый оператор, который вызывается для массивов, которые не const
являются, можно использовать в правом (r-value) или левом (l-value) инструкции назначения. Второй, вызываемый для const
массивов, можно использовать только справа.
Отладочная версия библиотеки утверждает, что подстрок (слева или справа от оператора назначения) выходит за рамки.
CTypedPtrArray::SetAt
Эта функция-член вызывает BASE_CLASS
::SetAt.
void SetAt(
INT_PTR nIndex,
TYPE ptr);
Параметры
nIndex
Целочисленный индекс, который больше или равен 0 и меньше или равен значению, возвращаемого CObArray::GetUpperBound.
TYPE
Тип элементов, хранящихся в массиве базового класса.
ptr
Указатель на элемент, который нужно вставить в массив в nIndex. Допускается значение NULL.
Замечания
Дополнительные замечания см. в разделе CObArray::SetAt.
CTypedPtrArray::SetAtGrow
Эта функция-член вызывает BASE_CLASS
::SetAtGrow.
void SetAtGrow(
INT_PTR nIndex,
TYPE newElement);
Параметры
nIndex
Целый индекс, превышающий или равный 0.
TYPE
Тип элементов, хранящихся в массиве базового класса.
newElement
Указатель объекта, добавляемый в этот массив. Допускается значение NULL.
Замечания
Дополнительные замечания см. в разделе CObArray::SetAtGrow.
См. также
Пример MFC COLLECT
Диаграмма иерархии
Класс CPtrArray
Класс CObArray