SORU
27 HAZİRAN 2012, ÇARŞAMBA


Ne'kopyala ve direkt başlatma farklı davranır olmasının ardındaki motivasyon s?

Biraz Why is copy constructor called instead of conversion constructor? ile ilgili

Başlatma için iki sözdizimi direkt ve kopyalama-başlatma vardır:

A a(b);
A a = b;

Onlar için motivasyon bilmek farklı tanımlanan davranışa sahip olmak istiyorum. Kopyalama başlatma için, fazladan bir tane parmağı var, ve o kopya için herhangi bir amaç düşünemiyorum. O zaman bir kopyasını geçici olabilir ve muhtemelen olacak optimize edilmiş, kullanıcı güvenilmiyor oluyor yani fazladan bir kopyasını kendisi değil yeterli bir sebep için farklı davranış. Yani... neden?

CEVAP
27 HAZİRAN 2012, ÇARŞAMBA


Sadece bir spekülasyon, ama Bjarne Stroustrup olmadan bu kadar emin olmak çok zor gerçekten nasıl olduğunu doğrulayan olacak korkuyorum:

Tasarlanmıştır çünkü bu şekilde olduğunu düşünmüştüm böyle bir davranış olacaktır beklendiği ile programcı, o beklediğiniz kopya yapılması zaman = işareti kullanılır ve yapılan ile doğrudan başlatıcı sözdizimi.

Olası kopya elision sadece standart sürümlerinde eklendi sanırım, ama emin değilim - bu birileri kesinlikle standart tarihini kontrol ederek söylemek mümkün olabilir bir şeydir.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 0TACTICAL0HIPPY0

    0TACTICAL0HI

    30 EYLÜL 2012
  • SalGames2016

    SalGames2016

    17 Kasım 2012
  • XxMinayaxX1

    XxMinayaxX1

    9 Mayıs 2012