Bagikan melalui


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 CAutoPtrdengan , 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.

Baca juga

Kelas CAutoPtr
Gambaran Umum Kelas