Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Замечание
Библиотека активных шаблонов (ATL) продолжает поддерживаться. Однако мы больше не добавляем функции или обновляем документацию.
Этот класс представляет объект интеллектуального указателя с помощью векторных новых и удаленных операторов.
Внимание
Этот класс и его члены нельзя использовать в приложениях, выполняемых в среде выполнения Windows.
Синтаксис
template<typename T>
class CAutoVectorPtr
Параметры
T
Тип указателя.
Участники
Открытые конструкторы
| Имя | Описание |
|---|---|
| CAutoVectorPtr::CAutoVectorPtr | Конструктор. |
| CAutoVectorPtr::~CAutoVectorPtr | Деструктор |
Открытые методы
| Имя | Описание |
|---|---|
| CAutoVectorPtr::Allocate | Вызовите этот метод, чтобы выделить память, необходимую массиву объектов, на которые указывает CAutoVectorPtr. |
| CAutoVectorPtr::Attach | Вызовите этот метод для владения существующим указателем. |
| CAutoVectorPtr::D etach | Вызовите этот метод, чтобы освободить владение указателем. |
| CAutoVectorPtr::Free | Вызовите этот метод для удаления объекта, на который указывает объект CAutoVectorPtr. |
Открытые операторы
| Имя | Описание |
|---|---|
| CAutoVectorPtr::operator T * | Оператор приведения. |
| CAutoVectorPtr::operator = | Оператор присваивания . |
Открытые члены данных
| Имя | Описание |
|---|---|
| CAutoVectorPtr::m_p | Переменная элемента данных указателя. |
Замечания
Этот класс предоставляет методы для создания интеллектуального указателя и управления ими, что поможет защититься от утечки памяти, автоматически освобождая ресурсы при выходе из области.
CAutoVectorPtrПохожеCAutoPtr, единственное различие заключается в том, что используется CAutoVectorPtrvector new[] и выделяется и vector delete[] освобождает память вместо C++ new и delete операторов. См. статью CAutoVectorPtrElementTraits , если необходимы классы коллекций CAutoVectorPtr .
Пример использования интеллектуального класса указателя см. в CAutoPtr.
Требования
Заголовок: atlbase.h
CAutoVectorPtr::Allocate
Вызовите этот метод, чтобы выделить память, необходимую массиву объектов, на которые указывает CAutoVectorPtr.
bool Allocate(size_t nElements) throw();
Параметры
nElements
Количество элементов в массиве.
Возвращаемое значение
Возвращает значение true, если память успешно выделена, значение false при сбое.
Замечания
В сборках отладки произойдет сбой утверждения, если переменная члена CAutoVectorPtr::m_p указывает на существующее значение, то есть не равно NULL.
CAutoVectorPtr::Attach
Вызовите этот метод для владения существующим указателем.
void Attach(T* p) throw();
Параметры
p
Объект CAutoVectorPtr будет иметь владение этим указателем.
Замечания
CAutoVectorPtr Когда объект берет на себя владение указателем, он автоматически удаляет указатель и все выделенные данные при выходе из области. Если вызывается CAutoVectorPtr::D etach , программист снова несет ответственность за освобождение выделенных ресурсов.
В сборках отладки произойдет сбой утверждения, если переменная члена CAutoVectorPtr::m_p указывает на существующее значение, то есть не равно NULL.
CAutoVectorPtr::CAutoVectorPtr
Конструктор.
CAutoVectorPtr() throw();
explicit CAutoVectorPtr(T* p) throw();
CAutoVectorPtr(CAutoVectorPtr<T>& p) throw();
Параметры
p
Существующий указатель.
Замечания
Объект CAutoVectorPtr можно создать с помощью существующего указателя, в этом случае он передает права владения указателем.
CAutoVectorPtr::~CAutoVectorPtr
Деструктор
~CAutoVectorPtr() throw();
Замечания
Освобождает все выделенные ресурсы. Вызывает CAutoVectorPtr::Free.
CAutoVectorPtr::D etach
Вызовите этот метод, чтобы освободить владение указателем.
T* Detach() throw();
Возвращаемое значение
Возвращает копию указателя.
Замечания
Освобождает владение указателем, задает переменную члена CAutoVectorPtr::m_p значение NULL и возвращает копию указателя. После вызова Detachпрограммист должен освободить все выделенные ресурсы, над которыми CAutoVectorPtr объект мог ранее нести ответственность.
CAutoVectorPtr::Free
Вызовите этот метод для удаления объекта, на который указывает объект CAutoVectorPtr.
void Free() throw();
Замечания
Объект, на который указывает CAutoVectorPtr освобожден, и переменная члена CAutoVectorPtr::m_p имеет значение NULL.
CAutoVectorPtr::m_p
Переменная элемента данных указателя.
T* m_p;
Замечания
Эта переменная-член содержит сведения указателя.
CAutoVectorPtr::operator =
Оператор присваивания .
CAutoVectorPtr<T>& operator= (CAutoVectorPtr<T>& p) throw();
Параметры
p
Указатель.
Возвращаемое значение
Возвращает ссылку на CAutoVectorPtr< T >.
Замечания
Оператор присваивания отсоединяет CAutoVectorPtr объект от любого текущего указателя и присоединяет новый указатель, p, на его месте.
CAutoVectorPtr::operator T *
Оператор приведения.
operator T*() const throw();
Замечания
Возвращает указатель на тип данных объекта, определенный в шаблоне класса.