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

  • Alexander Johnson

    Alexander Jo

    26 Temmuz 2008
  • backyardjay

    backyardjay

    8 ŞUBAT 2009
  • HereWeStayKings

    HereWeStayKi

    3 NİSAN 2013