Kelas CAutoVectorPtr
Kelas ini mewakili objek penunjuk cerdas menggunakan operator baru vektor dan menghapus.
Penting
Kelas ini dan anggotanya tidak dapat digunakan dalam aplikasi yang dijalankan di Windows Runtime.
Sintaks
template<typename T>
class CAutoVectorPtr
Parameter
T
Jenis penunjuk.
Anggota
Konstruktor Publik
Nama | Deskripsi |
---|---|
CAutoVectorPtr::CAutoVectorPtr | Konstruktor. |
CAutoVectorPtr::~CAutoVectorPtr | Destruktor. |
Metode Publik
Nama | Deskripsi |
---|---|
CAutoVectorPtr::Alokasikan | Panggil metode ini untuk mengalokasikan memori yang diperlukan oleh array objek yang diarahkan oleh CAutoVectorPtr . |
CAutoVectorPtr::Lampirkan | Panggil metode ini untuk mengambil kepemilikan pointer yang ada. |
CAutoVectorPtr::D etach | Panggil metode ini untuk merilis kepemilikan pointer. |
CAutoVectorPtr::Free | Panggil metode ini untuk menghapus objek yang ditujukkan oleh CAutoVectorPtr . |
Operator Publik
Nama | Deskripsi |
---|---|
CAutoVectorPtr::operator T * | Operator cast. |
CAutoVectorPtr::operator = | Operator penugasan. |
Anggota Data Publik
Nama | Deskripsi |
---|---|
CAutoVectorPtr::m_p | Variabel anggota data pointer. |
Keterangan
Kelas ini menyediakan metode untuk membuat dan mengelola pointer pintar, yang akan membantu melindungi dari kebocoran memori dengan secara otomatis membebaskan sumber daya ketika berada di luar cakupan. CAutoVectorPtr
mirip CAutoPtr
dengan , satu-satunya perbedaan adalah yang CAutoVectorPtr
menggunakan vector new[]
dan vector delete[]
untuk mengalokasikan dan membebaskan memori alih-alih C++ new
dan delete
operator. Lihat CAutoVectorPtrElementTraits jika kelas CAutoVectorPtr
koleksi diperlukan.
Lihat CAutoPtr untuk contoh penggunaan kelas penunjuk cerdas.
Persyaratan
Header: atlbase.h
CAutoVectorPtr::Alokasikan
Panggil metode ini untuk mengalokasikan memori yang diperlukan oleh array objek yang diarahkan oleh CAutoVectorPtr
.
bool Allocate(size_t nElements) throw();
Parameter
nElements
Jumlah elemen dalam array.
Tampilkan Nilai
Mengembalikan true jika memori berhasil dialokasikan, false pada kegagalan.
Keterangan
Dalam build debug, kegagalan pernyataan akan terjadi jika variabel anggota CAutoVectorPtr::m_p saat ini menunjuk ke nilai yang ada; artinya, tidak sama dengan NULL.
CAutoVectorPtr::Lampirkan
Panggil metode ini untuk mengambil kepemilikan pointer yang ada.
void Attach(T* p) throw();
Parameter
p
Objek CAutoVectorPtr
akan mengambil kepemilikan penunjuk ini.
Keterangan
CAutoVectorPtr
Ketika objek mengambil kepemilikan pointer, objek akan secara otomatis menghapus pointer dan data apa pun yang dialokasikan ketika keluar dari cakupan. Jika CAutoVectorPtr::D etach dipanggil, programmer kembali diberi tanggung jawab untuk membebaskan sumber daya yang dialokasikan.
Dalam build debug, kegagalan pernyataan akan terjadi jika variabel anggota CAutoVectorPtr::m_p saat ini menunjuk ke nilai yang ada; artinya, tidak sama dengan NULL.
CAutoVectorPtr::CAutoVectorPtr
Konstruktor.
CAutoVectorPtr() throw();
explicit CAutoVectorPtr(T* p) throw();
CAutoVectorPtr(CAutoVectorPtr<T>& p) throw();
Parameter
p
Penunjuk yang ada.
Keterangan
Objek CAutoVectorPtr
dapat dibuat menggunakan pointer yang ada, dalam hal ini mentransfer kepemilikan pointer.
CAutoVectorPtr::~CAutoVectorPtr
Destruktor.
~CAutoVectorPtr() throw();
Keterangan
Membebaskan sumber daya yang dialokasikan. Memanggil CAutoVectorPtr::Free.
CAutoVectorPtr::D etach
Panggil metode ini untuk merilis kepemilikan pointer.
T* Detach() throw();
Tampilkan Nilai
Mengembalikan salinan pointer.
Keterangan
Merilis kepemilikan pointer, mengatur variabel anggota CAutoVectorPtr::m_p ke NULL, dan mengembalikan salinan pointer. Setelah memanggil Detach
, terserah programmer untuk membebaskan sumber daya yang dialokasikan di mana CAutoVectorPtr
objek mungkin sebelumnya bertanggung jawab.
CAutoVectorPtr::Free
Panggil metode ini untuk menghapus objek yang ditujukkan oleh CAutoVectorPtr
.
void Free() throw();
Keterangan
Objek yang ditunjukkan oleh CAutoVectorPtr
dibebaskan, dan variabel anggota CAutoVectorPtr::m_p diatur ke NULL.
CAutoVectorPtr::m_p
Variabel anggota data pointer.
T* m_p;
Keterangan
Variabel anggota ini menyimpan informasi pointer.
CAutoVectorPtr::operator =
Operator penugasan.
CAutoVectorPtr<T>& operator= (CAutoVectorPtr<T>& p) throw();
Parameter
p
Sebuah pointer.
Tampilkan Nilai
Mengembalikan referensi ke CAutoVectorPtr< T >.
Keterangan
Operator penugasan mencopot CAutoVectorPtr
objek dari penunjuk saat ini dan melampirkan pointer baru, p, di tempatnya.
CAutoVectorPtr::operator T *
Operator cast.
operator T*() const throw();
Keterangan
Mengembalikan penunjuk ke jenis data objek yang ditentukan dalam templat kelas.