Класс CAutoVectorPtr

Этот класс представляет объект интеллектуального указателя с помощью векторных новых и удаленных операторов.

Важно!

Этот класс и его члены нельзя использовать в приложениях, выполняемых в среде выполнения 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, единственное различие заключается в том, что используется vector new[]CAutoVectorPtr и выделяется и 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();

Замечания

Возвращает указатель на тип данных объекта, определенный в шаблоне класса.

См. также

Класс CAutoPtr
Общие сведения о классе