Aracılığıyla paylaş


CAutoPtr sınıfı

Bu sınıf, akıllı işaretçi nesnesini gösterir.

Önemli notÖnemli

Bu sınıf ve üyeleri, Windows çalışma zamanında yürütmek uygulamalarda kullanılamaz.

template< 
typename T
>
class CAutoPtr

Parametreler

  • T
    İşaretçi türü.

Üyeler

txda4x5t.collapse_all(tr-tr,VS.110).gifOrtak Oluşturucusu

Ad

Description

CAutoPtr::CAutoPtr

Oluşturucu.

CAutoPtr:: ~ CAutoPtr

Yıkıcı.

txda4x5t.collapse_all(tr-tr,VS.110).gifPublic yöntemler

Ad

Description

CAutoPtr::Attach

Varolan bir işaretçiyi sahipliğini almak için bu yöntemi çağırın.

CAutoPtr::Detach

Bir işaretçi sahipliğini serbest bırakmak için bu yöntemi çağırın.

CAutoPtr::Free

Göre sıralanmasını bir nesneyi silmek için bu yöntemi çağırın bir CAutoPtr.

txda4x5t.collapse_all(tr-tr,VS.110).gifOrtak İşleçler

Ad

Description

CAutoPtr::operator t *

Dönüþtürme iþleci.

CAutoPtr::operator =

Atama işleci.

CAutoPtr::operator - >

İşaretçiyi üye işleci.

txda4x5t.collapse_all(tr-tr,VS.110).gifOrtak veri üyeleri

Ad

Description

CAutoPtr::m_p

İşaretçiyi veri üye değişkeni.

Notlar

Bu sınıf oluşturma ve yönetme kapsam dışına düştüğünde otomatik olarak kaynakları azaltarak bellek sızıntıları karşı korunmasına yardımcı olacak bir akıllı işaretçi için yöntemler sağlar.

Daha fazla, CAutoPtrkopya yapıcı ve atama işleci transfer sahiplik hedef işaretçi kaynak İşaretçi İşaretçi kopyalama ve kaynak işaretçi null olarak ayarlama.Bu nedenle iki imkansız CAutoPtr her aynı işaretçi depolamak nesneleri ve bu iki kez aynı işaretçi silinmesi olasılığını azaltır.

CAutoPtrAyrıca işaretçiler topluluğu oluşturulmasını kolaylaştırır.Koleksiyon sýnýfýný türeyen ve yıkıcı yazmak yerine bir koleksiyonu yapmak daha basittir CAutoPtr nesneler.Koleksiyon silindiğinde, CAutoPtr nesneleri etki alanýnýn dýþýna çýkar ve kendilerini otomatik olarak sil.

CHeapPtr ve türevleri ile aynı şekilde CAutoPtr, ayırma ve boş Bellek Kaçağı farklı işlevleri C++ kullanarak dışında Yeni ve silmek operators.CAutoVectorPtr benzer şekilde, CAutoPtr, şu anda onu kullanan tek fark vektör yeni [ ve vektör silme [ ayırmak ve belleği boşaltmak için.

Ayrıca bkz: CAutoPtrArray ve CAutoPtrList ne zaman dizileri veya akıllı işaretçiler listeleri gereklidir.

Gereksinimler

Başlık: atlbase.h

Örnek

// A simple class for demonstration purposes

class MyClass 
{
   int iA;
   int iB;
public:
   MyClass(int a, int b);
   void Test();
};

MyClass::MyClass(int a, int b)
{
   iA = a;
   iB = b;
}

void MyClass::Test()
{
   ATLASSERT(iA == iB);
}

// A simple function

void MyFunction(MyClass* c)
{
   c->Test();
}

int UseMyClass()
{
   // Create an object of MyClass.
   MyClass *pMyC = new MyClass(1, 1);

   // Create a CAutoPtr object and have it take
   // over the pMyC pointer by calling Attach.
   CAutoPtr<MyClass> apMyC;
   apMyC.Attach(pMyC);

   // The overloaded -> operator allows the 
   // CAutoPtr object to be used in place of the pointer.
   apMyC->Test();

   // Assign a second CAutoPtr, using the = operator.
   CAutoPtr<MyClass> apMyC2;
   apMyC2 = apMyC;

   // The casting operator allows the
   // object to be used in place of the pointer.
   MyFunction(pMyC);
   MyFunction(apMyC2);

   // Detach breaks the association, so after this
   // call, pMyC is controlled only by apMyC.
   apMyC2.Detach();

   // CAutoPtr destroys any object it controls when it
   // goes out of scope, so apMyC destroys the object 
   // pointed to by pMyC here.
   return 0;
}

Ayrıca bkz.

Başvuru

CHeapPtr sınıfı

CAutoVectorPtr sınıfı

Diğer Kaynaklar

atl sınıfına genel bakış