CAutoVectorPtr 클래스
이 클래스는 벡터 new 및 delete 연산자를 사용하는 스마트 포인터 개체를 나타냅니다.
Important
이 클래스와 해당 멤버는 Windows 런타임에서 실행되는 애플리케이션에서 사용할 수 없습니다.
구문
template<typename T>
class CAutoVectorPtr
매개 변수
T
포인터 형식입니다.
멤버
공용 생성자
속성 | 설명 |
---|---|
CAutoVectorPtr::CAutoVectorPtr | 생성자입니다. |
CAutoVectorPtr::~CAutoVectorPtr | 소멸자입니다. |
공용 메서드
이름 | 설명 |
---|---|
CAutoVectorPtr::Allocate | 이 메서드를 호출하여 가리키는 개체 배열에 필요한 메모리를 할당합니다 CAutoVectorPtr . |
CAutoVectorPtr::Attach | 이 메서드를 호출하여 기존 포인터의 소유권을 가져옵니다. |
CAutoVectorPtr::D etach | 포인터의 소유권을 해제하려면 이 메서드를 호출합니다. |
CAutoVectorPtr::Free | 이 메서드를 호출하여 .에서 가리키는 개체를 CAutoVectorPtr 삭제합니다. |
Public 연산자
속성 | 설명 |
---|---|
CAutoVectorPtr::operator T * | 캐스트 연산자입니다. |
CAutoVectorPtr::operator = | 할당 연산자입니다. |
공용 데이터 멤버
속성 | 설명 |
---|---|
CAutoVectorPtr::m_p | 포인터 데이터 멤버 변수입니다. |
설명
이 클래스는 스마트 포인터를 만들고 관리하기 위한 메서드를 제공합니다. 이 메서드는 범위에서 벗어날 때 리소스를 자동으로 해제하여 메모리 누수로부터 보호하는 데 도움이 됩니다. CAutoVectorPtr
CAutoPtr
는 C++ new
및 연산자 대신 메모리를 사용하고 vector new[]
할당하고 vector delete[]
해제하는 유일한 차이점 CAutoVectorPtr
입니다delete
. 컬렉션 클래스가 필요한 경우 CAutoVectorPtrElementTraits를 CAutoVectorPtr
참조하세요.
스마트 포인터 클래스를 사용하는 예제는 CAutoPtr을 참조하세요.
요구 사항
헤더: atlbase.h
CAutoVectorPtr::Allocate
이 메서드를 호출하여 가리키는 개체 배열에 필요한 메모리를 할당합니다 CAutoVectorPtr
.
bool Allocate(size_t nElements) throw();
매개 변수
nElements
배열의 요소 수입니다.
Return Value
메모리가 성공적으로 할당되면 true를 반환하고 실패하면 false를 반환합니다.
설명
디버그 빌드에서 CAutoVectorPtr::m_p 멤버 변수가 현재 기존 값을 가리키는 경우, 즉 NULL과 같지 않으면 어설션 오류가 발생합니다.
CAutoVectorPtr::Attach
이 메서드를 호출하여 기존 포인터의 소유권을 가져옵니다.
void Attach(T* p) throw();
매개 변수
p
개체는 CAutoVectorPtr
이 포인터의 소유권을 맡습니다.
설명
개체가 CAutoVectorPtr
포인터의 소유권을 가져오는 경우 범위를 벗어나면 포인터와 할당된 데이터가 자동으로 삭제됩니다. CAutoVectorPtr::D etach가 호출되면 프로그래머에게 할당된 리소스를 해제할 책임이 다시 부여됩니다.
디버그 빌드에서 CAutoVectorPtr::m_p 멤버 변수가 현재 기존 값을 가리키는 경우, 즉 NULL과 같지 않으면 어설션 오류가 발생합니다.
CAutoVectorPtr::CAutoVectorPtr
생성자입니다.
CAutoVectorPtr() throw();
explicit CAutoVectorPtr(T* p) throw();
CAutoVectorPtr(CAutoVectorPtr<T>& p) throw();
매개 변수
p
기존 포인터입니다.
설명
개체는 CAutoVectorPtr
기존 포인터를 사용하여 만들 수 있으며, 이 경우 포인터의 소유권을 이전합니다.
CAutoVectorPtr::~CAutoVectorPtr
소멸자입니다.
~CAutoVectorPtr() throw();
설명
할당된 리소스를 해제합니다. CAutoVectorPtr::Free를 호출 합니다.
CAutoVectorPtr::D etach
포인터의 소유권을 해제하려면 이 메서드를 호출합니다.
T* Detach() throw();
Return Value
포인터의 복사본을 반환합니다.
설명
포인터의 소유권을 해제하고, CAutoVectorPtr::m_p 멤버 변수를 NULL로 설정하고, 포인터의 복사본을 반환합니다. 호출 Detach
한 후에는 프로그래머가 개체가 이전에 책임을 맡았을 수 있는 할당된 리소스를 CAutoVectorPtr
해제해야 합니다.
CAutoVectorPtr::Free
이 메서드를 호출하여 .에서 가리키는 개체를 CAutoVectorPtr
삭제합니다.
void Free() throw();
설명
가리키는 CAutoVectorPtr
개체가 해제되고 CAutoVectorPtr::m_p 멤버 변수가 NULL로 설정됩니다.
CAutoVectorPtr::m_p
포인터 데이터 멤버 변수입니다.
T* m_p;
설명
이 멤버 변수는 포인터 정보를 보유합니다.
CAutoVectorPtr::operator =
할당 연산자입니다.
CAutoVectorPtr<T>& operator= (CAutoVectorPtr<T>& p) throw();
매개 변수
p
포인터입니다.
Return Value
CAutoVectorPtr T에 대한 참조 를< 반환합니다 >.
설명
대입 연산자는 현재 포인터에서 개체를 CAutoVectorPtr
분리하고 새 포인터 p를 해당 위치에 연결합니다.
CAutoVectorPtr::operator T *
캐스트 연산자입니다.
operator T*() const throw();
설명
클래스 템플릿에 정의된 개체 데이터 형식에 대한 포인터를 반환합니다.