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

  • incognitotraveler

    incognitotra

    27 Mayıs 2010
  • MW Technology

    MW Technolog

    28 EKİM 2009
  • Roger Huffman

    Roger Huffma

    4 ŞUBAT 2007