CAdapt 클래스

이 템플릿은 개체 주소 이외의 주소를 반환하도록 연산자 주소를 다시 정의하는 클래스를 래핑하는 데 사용됩니다.

구문

template <class T>
class CAdapt

매개 변수

T
조정된 형식입니다.

멤버

공용 생성자

속성 설명
CAdapt::CAdapt 생성자입니다.

Public 연산자

속성 설명
CAdapt::operator const T& 에 대한 참조를 const 반환합니다 m_T.
CAdapt::operator T& m_T에 대한 참조를 반환합니다.
CAdapt::operator < 조정된 형식의 개체를 m_T와 비교합니다.
CAdapt::operator = 조정된 형식의 개체를 m_T에 할당합니다.
CAdapt::operator == 조정된 형식의 개체를 m_T와 비교합니다.

공용 데이터 멤버

속성 설명
CAdapt::m_T 조정되는 데이터입니다.

설명

CAdapt는 개체의 주소 이외의 주소를 반환하도록 연산자의 주소(operator &)를 다시 정의하는 클래스를 래핑하는 데 사용되는 간단한 템플릿입니다. 이러한 클래스의 예로 ATL의 CComBSTR, CComPtr, CComQIPtr 클래스 및 컴파일러 COM 지원 클래스인 _com_ptr_t가 있습니다. 이러한 클래스는 모두 주소 연산자를 재정의하여 해당 데이터 멤버 중 하나의 주소(의 경우 BSTR 및 다른 클래스의 CComBSTR경우 인터페이스 포인터)를 반환합니다.

CAdapt'의 주요 역할은 T 클래스에서 정의한 주소 연산자를 숨기면서도 적응된 클래스의 특성을 유지하는 것입니다. CAdapt는 T 형식의 공용 멤버인 m_T 보유하고 변환 연산자, 비교 연산자 및 복사 생성자를 정의하여 특수화가 T 형식CAdapt 개체인 것처럼 처리되도록 하여 이 역할을 수행합니다.

어댑터 클래스 CAdapt는 일부 컨테이너 스타일 클래스가 연산자 주소를 사용하여 포함된 개체의 주소를 가져올 수 있기 때문에 유용합니다. 연산자의 주소를 다시 정의하면 일반적으로 컴파일 오류가 발생하고 "작동"해야 하는 클래스에서 조정되지 않은 형식이 사용되지 않아 이 요구 사항에 맞지 않게 됩니다. CAdapt가 이러한 문제에 대한 해결 방법을 제공합니다.

일반적으로 컨테이너 스타일 클래스에 CAdapt, CComBSTR, CComPtr 또는 CComQIPtr 개체를 저장하려는 경우 _com_ptr_t를 사용합니다. 이는 C++11 표준이 지원되기 전에 C++ 표준 라이브러리 컨테이너에 대해 가장 일반적으로 필요했지만, 이제 C++11 표준 라이브러리 컨테이너가 operator&()를 오버로드한 형식으로 자동으로 작동합니다. 표준 라이브러리는 내부적으로 std::addressof를 사용하여 개체의 실제 주소를 가져와서 이를 달성합니다.

요구 사항

헤더: atlcomcli.h

CAdapt::CAdapt

생성자를 사용하면 어댑터 개체를 기본적으로 생성하거나, 적응된 형식의 개체에서 복사하거나, 다른 어댑터 개체에서 복사할 수 있습니다.

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

매개 변수

rSrc
새로 생성된 어댑터 개체에 복사되도록 조정되는 형식의 변수입니다.

rSrCA
포함된 데이터를 새로 생성된 어댑터 개체로 복사(또는 이동)해야 하는 어댑터 개체입니다.

CAdapt::m_T

조정되는 데이터를 보유합니다.

T m_T;

설명

public 데이터 멤버는 연산자 const T& 및 연산자 T>를 사용하여 직접 또는 간접적으로 액세스할 수 있습니다.

CAdapt::operator const T&

const 어댑터 개체가 T 형식개체인 것처럼 처리될 수 있도록 m_T 멤버에 대한 참조를 반환합니다.

operator const T&() const;

Return Value

const 대한 참조입니다 m_T.

CAdapt::operator T&

어댑터 개체가 T 형식개체인 것처럼 처리될 수 있도록 m_T 멤버에 대한 참조를 반환합니다.

operator T&();

Return Value

m_T에 대한 참조입니다.

CAdapt::operator <

적응 형식 의 개체를 m_T 비교합니다.

bool operator<(const T& rSrc) const;

매개 변수

rSrc
비교할 개체에 대한 참조입니다.

Return Value

rSrc와 rSrc 간의 m_T 비교 결과입니다.

CAdapt::operator =

대입 연산자는 rSrc 인수를 m_T 데이터 멤버에 할당하고 현재 어댑터 개체를 반환합니다.

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

매개 변수

rSrc
복사할 적응 형식의 개체에 대한 참조입니다.

rSrCA
이동할 개체에 대한 참조입니다.

Return Value

현재 개체에 대한 참조입니다.

CAdapt::operator ==

적응 형식 의 개체를 m_T 비교합니다.

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

매개 변수

rSrc
비교할 개체에 대한 참조입니다.

Return Value

m_T rSrc 간의 비교 결과입니다.

참고 항목

클래스 개요