CHeapPtrBase
sınıfı
Bu sınıf, birkaç akıllı yığın işaretçisi sınıfı için temel oluşturur.
Önemli
Bu sınıf ve üyeleri Windows Çalışma Zamanı yürütülen uygulamalarda kullanılamaz.
Sözdizimi
template <class T, class Allocator = CCRTAllocator>
class CHeapPtrBase
Parametreler
T
Yığında depolanacak nesne türü.
Allocator
Kullanılacak bellek ayırma sınıfı. Varsayılan olarak CRT yordamları bellek ayırmak ve boşaltmak için kullanılır.
Üyeler
Ortak oluşturucular
Veri Akışı Adı | Açıklama |
---|---|
CHeapPtrBase::~CHeapPtrBase |
Yok edici. |
Genel yöntemler
Veri Akışı Adı | Açıklama |
---|---|
CHeapPtrBase::AllocateBytes |
Bellek ayırmak için bu yöntemi çağır. |
CHeapPtrBase::Attach |
Mevcut bir işaretçinin sahipliğini almak için bu yöntemi çağırın. |
CHeapPtrBase::Detach |
Bir işaretçinin sahipliğini serbest bırakmak için bu yöntemi çağırın. |
CHeapPtrBase::Free |
tarafından CHeapPtrBase işaret edilen bir nesneyi silmek için bu yöntemi çağır. |
CHeapPtrBase::ReallocateBytes |
Belleği yeniden dağıtmak için bu yöntemi çağır. |
Genel işleçler
Veri Akışı Adı | Açıklama |
---|---|
CHeapPtrBase::operator T* |
Atama işleci. |
CHeapPtrBase::operator & |
& işleci. |
CHeapPtrBase::operator -> |
İşaretçiden üyeye işleci. |
Genel veri üyeleri
Veri Akışı Adı | Açıklama |
---|---|
CHeapPtrBase::m_pData |
İşaretçi veri üye değişkeni. |
Açıklamalar
Bu sınıf, birkaç akıllı yığın işaretçisi sınıfı için temel oluşturur. Türetilmiş sınıflar, örneğin CHeapPtr
ve CComHeapPtr
kendi oluşturucularını ve işleçlerini ekler. Uygulama örnekleri için bu sınıflara bakın.
Gereksinimler
Üst bilgi: atlcore.h
CHeapPtrBase::AllocateBytes
Bellek ayırmak için bu yöntemi çağır.
bool AllocateBytes(size_t nBytes) throw();
Parametreler
nBytes
Ayrılacak bellek bayt sayısı.
Dönüş değeri
Bellek başarıyla ayrılırsa true, aksi takdirde false döndürür.
Açıklamalar
Hata ayıklama derlemelerinde, üye değişkeni şu anda mevcut bir değere işaret ederse CHeapPtrBase::m_pData
, yani NULL'a eşit değilse bir onaylama hatası oluşur.
CHeapPtrBase::Attach
Mevcut bir işaretçinin sahipliğini almak için bu yöntemi çağırın.
void Attach(T* pData) throw();
Parametreler
pData
CHeapPtrBase
Nesnesi bu işaretçinin sahipliğini alır.
Açıklamalar
Bir CHeapPtrBase
nesne işaretçinin sahipliğini aldığında, kapsam dışına çıktığında işaretçiyi ve ayrılan verileri otomatik olarak siler.
Hata ayıklama derlemelerinde, üye değişkeni şu anda mevcut bir değere işaret ederse CHeapPtrBase::m_pData
, yani NULL'a eşit değilse bir onaylama hatası oluşur.
CHeapPtrBase::~CHeapPtrBase
Yok edici.
~CHeapPtrBase() throw();
Açıklamalar
Ayrılan tüm kaynakları serbesttir.
CHeapPtrBase::Detach
Bir işaretçinin sahipliğini serbest bırakmak için bu yöntemi çağırın.
T* Detach() throw();
Dönüş değeri
İşaretçinin bir kopyasını döndürür.
Açıklamalar
bir işaretçinin sahipliğini serbest bırakır, üye değişkenini CHeapPtrBase::m_pData
NULL olarak ayarlar ve işaretçinin bir kopyasını döndürür.
CHeapPtrBase::Free
tarafından CHeapPtrBase
işaret edilen bir nesneyi silmek için bu yöntemi çağır.
void Free() throw();
Açıklamalar
tarafından CHeapPtrBase
işaret edilen nesne serbesttir ve CHeapPtrBase::m_pData
üye değişkeni NULL olarak ayarlanır.
CHeapPtrBase::m_pData
İşaretçi veri üye değişkeni.
T* m_pData;
Açıklamalar
Bu üye değişkeni işaretçi bilgilerini tutar.
CHeapPtrBase::operator &
& işleci.
T** operator&() throw();
Dönüş değeri
Nesnenin işaret ettiği nesnenin CHeapPtrBase
adresini döndürür.
CHeapPtrBase::operator ->
İşaretçiden üyeye işleci.
T* operator->() const throw();
Dönüş değeri
Üye değişkeninin CHeapPtrBase::m_pData
değerini döndürür.
Açıklamalar
Nesne tarafından CHeapPtrBase
işaret edilen bir sınıftaki bir yöntemi çağırmak için bu işleci kullanın. Hata ayıklama derlemelerinde, NULL'a işaret ederse CHeapPtrBase
onay hatası oluşur.
CHeapPtrBase::operator T*
Atama işleci.
operator T*() const throw();
Açıklamalar
CHeapPtrBase::m_pData
döndürür.
CHeapPtrBase::ReallocateBytes
Belleği yeniden dağıtmak için bu yöntemi çağır.
bool ReallocateBytes(size_t nBytes) throw();
Parametreler
nBytes
Bayt cinsinden ayrılacak yeni bellek miktarı.
Dönüş değeri
Bellek başarıyla ayrılırsa true, aksi takdirde false döndürür.