SORU
21 EKİM 2008, Salı


&Quot vardır;yerleştirme yeni" kullanır;?

Burada hiç kimse C kullandı '""? yerleştirme yeni s Eğer öyleyse, ne için? Sadece bellek eşleşen donanım yararlı olacak gibi görünüyor.

CEVAP
21 EKİM 2008, Salı


Yerleştirme yeni zaten ayrılacak bellek üzerinde bir nesne oluşturmak için izin verir.

İyileştirme (yeniden tahsis etmek için değil, daha hızlı her zaman için bunu yapmak isteyebilirsiniz ama yeniden inşa nesneyi birden çok kez. Eğer yeniden tahsis tutmak için gerekirse henüz kullanmak istemezsin bile daha verimli ihtiyacınız olandan ayırmak için daha fazla olabilir.

Devex good example verir:

Standart C de yerleştirme destekler yeni bir yapıları olan santral, önceden ayrılmış bir arabellek nesne. Bu bir hafıza havuzu,yararlıdır çöp toplayıcı ya da sadece zaman performans ve özel güvenlik vardır paramount (orada bir tehlike yok. bellek bu yana ayırma hatası çoktan ayrılmış ve bir üzerine inşa bir nesne ön tahsis tampon daha az zaman alır:

char *buf  = new char[sizeof(string)]; // pre-allocated buffer
string *p = new (buf) string("hi");    // placement new
string *q = new string("hi");          // ordinary heap allocation

Ayrıca kritik kod belli bir bölümü (belki de örneğin bir kalp pili çalışma) ayırma hatası olabilir hiç emin olmak isteyebilirsiniz. Bu durumda yeni yerleşim kullanmak isterim.

Yerleştirme kaldırma, yeni

Ara bellek kullanan her nesne ayırması gerekir. Silmek yerine[] sadece orjinal tampon. Sonra yıkıcılar doğrudan sınıflar el ile aramak zorunda kalacak. Lütfen Stroustrup sıkça sorulan sorular bakın bu iyi bir öneri için: 3**?

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • MrExcite96

    MrExcite96

    17 ŞUBAT 2011
  • pleated-jeans

    pleated-jean

    6 HAZİRAN 2013
  • undrmyumbrellaa

    undrmyumbrel

    25 Temmuz 2012