SORU
10 AĞUSTOS 2010, Salı


::auto_ptr std std::unique_ptr

Yeni standart geliyor (ve bazı parçaları derleyici zaten mevcut), yeni tip std::unique_ptr std::auto_ptr için bir yedek olması gerekiyordu.

Yok kullanımlarını tam olarak üst üste (yani yapabileceğim bir küresel bul/değiştir benim kod o değil de ben böyle bir şey yapabilir, ama eğer ben yaptım)) yoksa ben farkında olun bazı farklılıklar vardır belli bir okuma belgeleri?

Ayrıca eğer sadece std::auto_ptr geliştirmek yerine doğrudan yerine yeni bir isim verin (neden).

CEVAP
10 AĞUSTOS 2010, Salı


Bir küresel auto_ptr (bilinen sonuçları ile) kopyalayabilirsiniz çünkü bul/değiştir, ama unique_ptr sadece hareket ettirilebilir bir olamaz. Gibi görünen bir şey

std::auto_ptr<int> p(new int);
std::auto_ptr<int> p2 = p; 

en azından böyle olmak zorunda kalacaktır

std::unique_ptr<int> p(new int);
std::unique_ptr<int> p2 = std::move(p);

Diğer farklar için unique_ptr diziler doğru (auto_ptr delete aramayı dener. delete[], çağırır işleyebilir gibi

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Adam Outler

    Adam Outler

    19 EKİM 2006
  • Kat Krazy

    Kat Krazy

    12 Kasım 2010
  • waterfairy17

    waterfairy17

    9 Aralık 2007