CHeapPtrBase
kelas
Kelas ini membentuk dasar untuk beberapa kelas penunjuk timbunan pintar.
Penting
Kelas ini dan anggotanya tidak dapat digunakan dalam aplikasi yang dijalankan di Windows Runtime.
template <class T, class Allocator = CCRTAllocator>
class CHeapPtrBase
T
Jenis objek yang akan disimpan pada tumpukan.
Allocator
Kelas alokasi memori yang akan digunakan. Secara default, rutinitas CRT digunakan untuk mengalokasikan dan membebaskan memori.
Nama | Deskripsi |
---|---|
CHeapPtrBase::~CHeapPtrBase |
Destruktor. |
Nama | Deskripsi |
---|---|
CHeapPtrBase::AllocateBytes |
Panggil metode ini untuk mengalokasikan memori. |
CHeapPtrBase::Attach |
Panggil metode ini untuk mengambil kepemilikan pointer yang ada. |
CHeapPtrBase::Detach |
Panggil metode ini untuk merilis kepemilikan pointer. |
CHeapPtrBase::Free |
Panggil metode ini untuk menghapus objek yang ditujukkan oleh CHeapPtrBase . |
CHeapPtrBase::ReallocateBytes |
Panggil metode ini untuk merealokasi memori. |
Nama | Deskripsi |
---|---|
CHeapPtrBase::operator T* |
Operator cast. |
CHeapPtrBase::operator & |
Operator &. |
CHeapPtrBase::operator -> |
Operator pointer-to-member. |
Nama | Deskripsi |
---|---|
CHeapPtrBase::m_pData |
Variabel anggota data pointer. |
Kelas ini membentuk dasar untuk beberapa kelas penunjuk timbunan pintar. Kelas turunan, misalnya, CHeapPtr
dan CComHeapPtr
, tambahkan konstruktor dan operator mereka sendiri. Lihat kelas-kelas ini untuk contoh implementasi.
Header: atlcore.h
Panggil metode ini untuk mengalokasikan memori.
bool AllocateBytes(size_t nBytes) throw();
nBytes
Jumlah byte memori yang akan dialokasikan.
Mengembalikan true jika memori berhasil dialokasikan, salah jika tidak.
Dalam build debug, kegagalan pernyataan akan terjadi jika CHeapPtrBase::m_pData
variabel anggota saat ini menunjuk ke nilai yang ada; artinya, itu tidak sama dengan NULL.
Panggil metode ini untuk mengambil kepemilikan pointer yang ada.
void Attach(T* pData) throw();
pData
Objek CHeapPtrBase
akan mengambil kepemilikan penunjuk ini.
CHeapPtrBase
Ketika objek mengambil kepemilikan pointer, objek akan secara otomatis menghapus pointer dan data apa pun yang dialokasikan ketika keluar dari cakupan.
Dalam build debug, kegagalan pernyataan akan terjadi jika CHeapPtrBase::m_pData
variabel anggota saat ini menunjuk ke nilai yang ada; artinya, itu tidak sama dengan NULL.
Destruktor.
~CHeapPtrBase() throw();
Membebaskan semua sumber daya yang dialokasikan.
Panggil metode ini untuk merilis kepemilikan pointer.
T* Detach() throw();
Mengembalikan salinan pointer.
Merilis kepemilikan pointer, mengatur CHeapPtrBase::m_pData
variabel anggota ke NULL, dan mengembalikan salinan pointer.
Panggil metode ini untuk menghapus objek yang ditujukkan oleh CHeapPtrBase
.
void Free() throw();
Objek yang CHeapPtrBase
ditujukkan oleh dibebesarkan, dan CHeapPtrBase::m_pData
variabel anggota diatur ke NULL.
Variabel anggota data pointer.
T* m_pData;
Variabel anggota ini menyimpan informasi pointer.
Operator &.
T** operator&() throw();
Mengembalikan alamat objek yang ditujukkan oleh CHeapPtrBase
objek.
Operator pointer-to-member.
T* operator->() const throw();
Mengembalikan nilai CHeapPtrBase::m_pData
variabel anggota.
Gunakan operator ini untuk memanggil metode di kelas yang diacu oleh CHeapPtrBase
objek. Dalam build debug, kegagalan pernyataan akan terjadi jika poin ke CHeapPtrBase
NULL.
Operator cast.
operator T*() const throw();
Menampilkan CHeapPtrBase::m_pData
.
Panggil metode ini untuk merealokasi memori.
bool ReallocateBytes(size_t nBytes) throw();
nBytes
Jumlah memori baru untuk dialokasikan, dalam byte.
Mengembalikan true jika memori berhasil dialokasikan, salah jika tidak.