SORU
23 ŞUBAT 2010, Salı


Kaynak Satın alma Başlatma (DEMİRYOLU) ne demektir?

Kaynak Satın alma Başlatma (DEMİRYOLU) ne demektir?

CEVAP
5 AĞUSTOS 2013, PAZARTESİ


İnanılmaz güçlü bir kavram için gerçekten berbat bir isim, ve C geliştiriciler diğer dillere geçiş yaptığınızda özledim 1 numara şeylerden biri belki de. Bu kavram olarak yeniden denemek için bir hareketin bir artış varKapsam Bağlama Kaynak Yönetimisadece yakaladığımız için henüz görünmüyor olsa da.,

Ne diyoruz 'Kaynak' biz değil bellek olabilir dosya işleme, ağ soketleri, veritabanı işleme, Sigortacılık Genel Müdürlüğü nesneleri... kısacası, her şey o var bir sonlu arz ve bu yüzden ihtiyacımız var edebilmek için kontrol kullanımı. 'Kapsamında bağlı' boy nesnenin ömrü, bir değişkenin kapsamı, bağlı olduğu anlamına gelir, değişken kapsam dışına çıktığında o zaman yıkıcı kaynak yayınlayacak. Bu çok yararlı bir özellik daha özel güvenlik için yapar. Örneğin, bu karşılaştırın:

RawResourceHandle* handle=createNewResource();
handle->performInvalidOperation();  // Oops, throws exception
...
deleteResource(handle); // oh dear, never gets called so the resource leaks

Bu DEMİRYOLU ile

class ManagedResourceHandle {
public:
   ManagedResourceHandle(RawResourceHandle* rawHandle_) : rawHandle(rawHandle_) {};
   ~ManagedResourceHandle() {delete rawHandle; }
   ... // omitted operator*, etc
private:
   RawResourceHandle* rawHandle;
};

ManagedResourceHandle handle(createNewResource());
handle->performInvalidOperation();

Bu özel durum ve yığın çözülmemiş olduğunda, bu ikinci durumda, yerel değişkenler kaynağımız temizlenir olmasını sağlar imha edilir ve sızıntı yok.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Alexander Johnson

    Alexander Jo

    26 Temmuz 2008
  • ghosti66

    ghosti66

    27 AĞUSTOS 2006
  • jagadambarecords

    jagadambarec

    13 AĞUSTOS 2008