Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Класс
Замечание
Библиотека активных шаблонов (ATL) продолжает поддерживаться. Однако мы больше не добавляем функции или обновляем документацию.
Этот класс формирует основу для нескольких классов смарт-указателя кучи.
Внимание
Этот класс и его члены нельзя использовать в приложениях, выполняемых в среде выполнения Windows.
Синтаксис
template <class T, class Allocator = CCRTAllocator>
class CHeapPtrBase
Параметры
T
Тип объекта, который должен храниться в куче.
Allocator
Используемый класс выделения памяти. По умолчанию подпрограммы CRT используются для выделения и освобождения памяти.
Участники
Открытые конструкторы
| Имя | Описание |
|---|---|
CHeapPtrBase::~CHeapPtrBase |
Деструктор |
Открытые методы
| Имя | Описание |
|---|---|
CHeapPtrBase::AllocateBytes |
Вызовите этот метод для выделения памяти. |
CHeapPtrBase::Attach |
Вызовите этот метод для владения существующим указателем. |
CHeapPtrBase::Detach |
Вызовите этот метод, чтобы освободить владение указателем. |
CHeapPtrBase::Free |
Вызовите этот метод для удаления объекта, на который указывает объект CHeapPtrBase. |
CHeapPtrBase::ReallocateBytes |
Вызовите этот метод для перераспределирования памяти. |
Общедоступные операторы
| Имя | Описание |
|---|---|
CHeapPtrBase::operator T* |
Оператор приведения. |
CHeapPtrBase::operator & |
Оператор >. |
CHeapPtrBase::operator -> |
Оператор указателя на член. |
Общедоступные члены данных
| Имя | Описание |
|---|---|
CHeapPtrBase::m_pData |
Переменная элемента данных указателя. |
Замечания
Этот класс формирует основу для нескольких классов смарт-указателя кучи. Производные классы, например, CHeapPtr и CComHeapPtrдобавьте собственные конструкторы и операторы. Примеры реализации см. в этих классах.
Требования
Заголовок: atlcore.h
CHeapPtrBase::AllocateBytes
Вызовите этот метод для выделения памяти.
bool AllocateBytes(size_t nBytes) throw();
Параметры
nBytes
Количество байтов памяти для выделения.
Возвращаемое значение
Возвращает значение true, если память успешно выделена, значение false в противном случае.
Замечания
В отладочных сборках ошибка утверждения будет возникать, если CHeapPtrBase::m_pData переменная-член в настоящее время указывает на существующее значение, то есть не равно NULL.
CHeapPtrBase::Attach
Вызовите этот метод для владения существующим указателем.
void Attach(T* pData) throw();
Параметры
pData
Объект CHeapPtrBase будет иметь владение этим указателем.
Замечания
CHeapPtrBase Когда объект берет на себя владение указателем, он автоматически удаляет указатель и все выделенные данные при выходе из области.
В отладочных сборках ошибка утверждения будет возникать, если CHeapPtrBase::m_pData переменная-член в настоящее время указывает на существующее значение, то есть не равно NULL.
CHeapPtrBase::~CHeapPtrBase
Деструктор
~CHeapPtrBase() throw();
Замечания
Освобождает все выделенные ресурсы.
CHeapPtrBase::Detach
Вызовите этот метод, чтобы освободить владение указателем.
T* Detach() throw();
Возвращаемое значение
Возвращает копию указателя.
Замечания
Освобождает права владения указателем, задает CHeapPtrBase::m_pData переменную-член значение NULL и возвращает копию указателя.
CHeapPtrBase::Free
Вызовите этот метод для удаления объекта, на который указывает объект CHeapPtrBase.
void Free() throw();
Замечания
Объект, на который указывает CHeapPtrBase освобожден, и CHeapPtrBase::m_pData переменная-член имеет значение NULL.
CHeapPtrBase::m_pData
Переменная элемента данных указателя.
T* m_pData;
Замечания
Эта переменная-член содержит сведения указателя.
CHeapPtrBase::operator &
Оператор >.
T** operator&() throw();
Возвращаемое значение
Возвращает адрес объекта, на который указывает CHeapPtrBase объект.
CHeapPtrBase::operator ->
Оператор указателя на член.
T* operator->() const throw();
Возвращаемое значение
Возвращает значение переменной-члена CHeapPtrBase::m_pData .
Замечания
Этот оператор используется для вызова метода в классе, на который указывает CHeapPtrBase объект. В отладочных сборках происходит сбой утверждения, если CHeapPtrBase указывает на ЗНАЧЕНИЕ NULL.
CHeapPtrBase::operator T*
Оператор приведения.
operator T*() const throw();
Замечания
Возвращает CHeapPtrBase::m_pData.
CHeapPtrBase::ReallocateBytes
Вызовите этот метод для перераспределирования памяти.
bool ReallocateBytes(size_t nBytes) throw();
Параметры
nBytes
Новый объем памяти для выделения в байтах.
Возвращаемое значение
Возвращает значение true, если память успешно выделена, значение false в противном случае.