Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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.