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

  • campos9896

    campos9896

    24 Mart 2012
  • cekehechu

    cekehechu

    20 HAZİRAN 2006
  • Fuse

    Fuse

    21 Kasım 2005