Bagikan melalui


Kelas CAdapt

Templat ini digunakan untuk membungkus kelas yang menetapkan ulang alamat operator untuk mengembalikan sesuatu selain alamat objek.

Sintaks

template <class T>
class CAdapt

Parameter

T
Jenis yang diadaptasi.

Anggota

Konstruktor Publik

Nama Deskripsi
CAdapt::CAdapt Konstruktor.

Operator Publik

Nama Deskripsi
CAdapt::operator const T& Mengembalikan const referensi ke m_T.
CAdapt::operator T& Mengembalikan referensi ke m_T.
CAdapt::operator < Membandingkan objek dari jenis yang diadaptasi dengan m_T.
CAdapt::operator = Menetapkan objek dari jenis yang diadaptasi ke m_T.
CAdapt::operator == Membandingkan objek dari jenis yang diadaptasi dengan m_T.

Anggota Data Publik

Nama Deskripsi
CAdapt::m_T Data yang sedang diadaptasi.

Keterangan

CAdapt adalah templat sederhana yang digunakan untuk membungkus kelas yang menetapkan ulang alamat operator (operator &) untuk mengembalikan sesuatu selain alamat objek. Contoh kelas tersebut termasuk kelas ATL CComBSTR, , CComPtrdan , dan CComQIPtr , dan kelas dukungan COM kompilator, _com_ptr_t. Semua kelas ini menentukan ulang alamat operator untuk mengembalikan alamat salah satu anggota data mereka (BSTR dalam kasus CComBSTR, dan penunjuk antarmuka dalam kasus kelas lain).

CAdaptPeran utamanya adalah menyembunyikan alamat operator yang ditentukan oleh kelas T, namun masih mempertahankan karakteristik kelas yang disesuaikan. CAdapt Memenuhi peran ini dengan memegang anggota publik, m_T, jenis T, dan dengan menentukan operator konversi, operator perbandingan, dan konstruktor salinan untuk memungkinkan spesialisasi CAdapt diperlakukan seolah-olah mereka adalah objek jenis T.

Kelas adaptor CAdapt berguna karena beberapa kelas gaya kontainer mengharapkan untuk dapat memperoleh alamat objek yang terkandung menggunakan alamat operator. Pendefinisian ulang alamat operator dapat membingungkan persyaratan ini, biasanya menyebabkan kesalahan kompilasi dan mencegah penggunaan jenis yang tidak disesuaikan dengan kelas yang mengharapkannya "hanya berfungsi". CAdapt menyediakan cara untuk mengatasi masalah tersebut.

Biasanya, Anda akan menggunakan CAdapt ketika Anda ingin menyimpan CComBSTR, , CComPtrCComQIPtr, atau _com_ptr_t objek di kelas gaya kontainer. Ini paling umum diperlukan untuk kontainer Pustaka Standar C++ sebelum dukungan untuk Standar C++11, tetapi kontainer Pustaka Standar C++11 secara otomatis bekerja dengan jenis yang telah kelebihan beban operator&(). Pustaka Standar mencapai ini dengan secara internal menggunakan std::addressof untuk mendapatkan alamat objek yang sebenarnya.

Persyaratan

Header: atlcomcli.h

CAdapt::CAdapt

Konstruktor memungkinkan objek adaptor dibuat secara default, disalin dari objek jenis yang diadaptasi, atau disalin dari objek adaptor lain.

CAdapt();
CAdapt(const T& rSrc);
CAdapt(const CAdapt& rSrCA);
CAdapt(T&& rSrCA);  // (Visual Studio 2017)
CAdapt(CAdapt<T>&& rSrCA) noexcept; // (Visual Studio 2017)

Parameter

rSrc
Variabel jenis yang diadaptasi untuk disalin ke dalam objek adaptor yang baru dibangun.

rSrCA
Objek adaptor yang berisi data harus disalin (atau dipindahkan) ke objek adaptor yang baru dibangun.

CAdapt::m_T

Menyimpan data yang sedang diadaptasi.

T m_T;

Keterangan

Anggota data ini public dapat diakses secara langsung atau tidak langsung dengan operator const T& dan operator T&.

CAdapt::operator const T&

const Mengembalikan referensi ke anggota m_T, memungkinkan objek adaptor diperlakukan seolah-olah itu adalah objek jenis T.

operator const T&() const;

Tampilkan Nilai

Referensi const ke m_T.

CAdapt::operator T&

Mengembalikan referensi ke anggota m_T , memungkinkan objek adaptor diperlakukan seolah-olah itu adalah objek jenis T.

operator T&();

Tampilkan Nilai

Referensi ke m_T.

CAdapt::operator <

Membandingkan objek dari jenis yang disesuaikan dengan m_T.

bool operator<(const T& rSrc) const;

Parameter

rSrc
Referensi ke objek yang akan dibandingkan.

Tampilkan Nilai

Hasil perbandingan antara m_T dan rSrc.

CAdapt::operator =

Operator penugasan menetapkan argumen, rSrc, ke anggota data m_T dan mengembalikan objek adaptor saat ini.

CAdapt& operator= (const T& rSrc);
CAdapt& operator= (T&& rSrCA); // (Visual Studio 2017)
CAdapt& operator= (CAdapt<T>&& rSrCA) noexcept; // (Visual Studio 2017)

Parameter

rSrc
Referensi ke objek dari jenis yang diadaptasi untuk disalin.

rSrCA
Referensi ke objek yang akan dipindahkan.

Tampilkan Nilai

Referensi ke objek saat ini.

CAdapt::operator ==

Membandingkan objek dari jenis yang disesuaikan dengan m_T.

bool operator== (const T& rSrc) const;

Parameter

rSrc
Referensi ke objek yang akan dibandingkan.

Tampilkan Nilai

Hasil perbandingan antara m_T dan rSrc.

Lihat juga

Gambaran Umum Kelas