Поделиться через


Класс 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