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

  • Justin Davis

    Justin Davis

    14 Ocak 2008
  • KoreanFrogMania님의 채널

    KoreanFrogMa

    18 Aralık 2011
  • The Dubstep FX

    The Dubstep

    5 Mart 2011