다음을 통해 공유


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 포인터 데이터 멤버 변수입니다.

설명

이 클래스는 스마트 포인터를 만들고 관리하기 위한 메서드를 제공합니다. 이 메서드는 범위에서 벗어날 때 리소스를 자동으로 해제하여 메모리 누수로부터 보호하는 데 도움이 됩니다. CAutoVectorPtrCAutoPtr는 C++ new 및 연산자 대신 메모리를 사용하고 vector new[] 할당하고 vector delete[] 해제하는 유일한 차이점 CAutoVectorPtr 입니다delete. 컬렉션 클래스가 필요한 경우 CAutoVectorPtrElementTraitsCAutoVectorPtr 참조하세요.

스마트 포인터 클래스를 사용하는 예제는 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();

설명

클래스 템플릿에 정의된 개체 데이터 형식에 대한 포인터를 반환합니다.

참고 항목

CAutoPtr 클래스
클래스 개요