Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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 CHeapPtrBaseiş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 CComHeapPtrkendi 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 CHeapPtrBaseiş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.