Aracılığıyla paylaş


CAdapt Sınıfı

Bu şablon, nesnenin adresi dışında bir öğe döndürmek üzere address-of işlecini yeniden tanımlayan sınıfları sarmalamak için kullanılır.

Sözdizimi

template <class T>
class CAdapt

Parametreler

T
Uyarlanmış tür.

Üyeler

Ortak Oluşturucular

Veri Akışı Adı Açıklama
CAdapt::CAdapt Oluşturucu.

Ortak İşleçler

Veri Akışı Adı Açıklama
CAdapt::operator const T& öğesine bir const başvuru m_Tdöndürür.
CAdapt::operator T& öğesine bir başvuru m_Tdöndürür.
CAdapt::operator < Uyarlanmış türün nesnesini ile m_Tkarşılaştırır.
CAdapt::operator = uyarlanmış türdeki bir nesnesini öğesine m_Tatar.
CAdapt::operator == Uyarlanmış türün nesnesini ile m_Tkarşılaştırır.

Ortak Veri Üyeleri

Veri Akışı Adı Açıklama
CAdapt::m_T Uyarlanan veri.

Açıklamalar

CAdapt , nesnenin adresi dışında bir şey döndürmek için işlecin adresini (operator &) yeniden tanımlayan sınıfları sarmalamada kullanılan basit bir şablondur. Bu tür sınıflara örnek olarak ATL'nin CComBSTR, CComPtrve sınıfları ile CComQIPtr derleyici COM destek sınıfı verilebilir _com_ptr_t. Bu sınıfların tümü, veri üyelerinden birinin adresini (durumunda BSTR ve diğer sınıflar söz konusu olduğunda CComBSTRbir arabirim işaretçisi) döndürmek için işlecin adresini yeniden tanımlar.

CAdapt'nin birincil rolü, T sınıfı tarafından tanımlanan işlecin adresini gizlemek, ancak uyarlanmış sınıfın özelliklerini korumaktır. CAdaptT türünde bir genel üyeyi, m_T tutarak ve özelleştirmelerinin T türündeki nesneler gibi ele alınmasına izin vermek için dönüştürme işleçleri, karşılaştırma işleçleri CAdapt ve bir kopya oluşturucu tanımlayarak bu rolü gerçekleştirir.

Bağdaştırıcı sınıfı CAdapt kullanışlıdır çünkü bazı kapsayıcı stili sınıflar, içindeki nesnelerinin adreslerini işlecini kullanarak alabilmeyi bekler. İşlecin adresinin yeniden tanımlanması, genellikle derleme hatalarına neden olacak ve bunun "çalışmasını" bekleyen sınıfların uyarlanmamış türünün kullanımını önleyecek şekilde bu gereksinimi bozabilir. CAdapt bu sorunları çözmenin bir yolunu sağlar.

Genellikle, , , veya _com_ptr_t nesnelerini kapsayıcı stilinde bir sınıfta depolamak CComBSTRistediğinizde kullanırsınızCAdapt. CComQIPtrCComPtr Bu, C++11 Standard desteğinden önce C++ Standart Kitaplığı kapsayıcıları için en yaygın olarak gerekliydi, ancak C++11 Standart Kitaplık kapsayıcıları aşırı yüklenmiş operator&()türlerle otomatik olarak çalışır. Standart Kitaplık, nesnelerin gerçek adreslerini almak için dahili olarak std::addressof kullanarak bunu başarır.

Gereksinimler

Üst bilgi: atlcomcli.h

CAdapt::CAdapt

Oluşturucular, bir bağdaştırıcı nesnesinin varsayılan olarak yapılandırılmasına, uyarlanmış türdeki bir nesneden kopyalanmasına veya başka bir bağdaştırıcı nesnesinden kopyalanmasına izin verir.

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

Parametreler

rSrc
Yeni oluşturulacak bağdaştırıcı nesnesine kopyalanacak şekilde uyarlanan türün değişkeni.

rSrCA
İçerdiği verilerin yeni oluşturulacak bağdaştırıcı nesnesine kopyalanması (veya taşınması) gereken bir bağdaştırıcı nesnesi.

CAdapt::m_T

Uyarlanan verileri tutar.

T m_T;

Açıklamalar

Bu public veri üyesine doğrudan veya dolaylı olarak işleç sabit T&ve işleç T& ile erişilebilir.

CAdapt::operator const T&

m_T üyesine başvuru const döndürerek bağdaştırıcı nesnesinin T türünde bir nesneymiş gibi değerlendirilmesini sağlar.

operator const T&() const;

Dönüş Değeri

öğesine const bir başvuru m_T.

CAdapt::operator T&

m_T üyesine başvuru döndürerek bağdaştırıcı nesnesinin T türünde bir nesneymiş gibi değerlendirilmesini sağlar.

operator T&();

Dönüş Değeri

öğesine bir başvuru m_T.

CAdapt::operator <

Uyarlanmış türün nesnesini m_T ile karşılaştırır.

bool operator<(const T& rSrc) const;

Parametreler

rSrc
Karşılaştırılacak nesneye başvuru.

Dönüş Değeri

ile rSrc arasındaki m_T karşılaştırmanın sonucu.

CAdapt::operator =

Atama işleci, rSrc bağımsız değişkenini veri üyesi m_T atar ve geçerli bağdaştırıcı nesnesini döndürür.

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

Parametreler

rSrc
Kopyalanacak uyarlanmış türde bir nesneye başvuru.

rSrCA
Taşınacak nesneye başvuru.

Dönüş Değeri

Geçerli nesneye başvuru.

CAdapt::operator ==

Uyarlanmış türün nesnesini m_T ile karşılaştırır.

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

Parametreler

rSrc
Karşılaştırılacak nesneye başvuru.

Dönüş Değeri

m_T ile rSrc arasındaki karşılaştırmanın sonucu.

Ayrıca bkz.

Sınıfa Genel Bakış