Tür adından sonra parantez içinde yeni bir fark yaratır mı? | Netgez.com
SORU
6 Mart 2009, Cuma


Tür adından sonra parantez içinde yeni bir fark yaratır mı?

'Sıradan bir sınıf' arasında bir fark vardır: . Test ederseniz

Test* test = new Test;
//and
Test* test = new Test();

CEVAP
6 Mart 2009, Cuma


Hadi aslında kodunuzu davranışlarını etkileyen farklılıklar vardır çünkü ukala. Aşağıdaki çok yorum "Old New Thing" article yapılan alınır.

Bazen hafıza döndürülen yeni operatör olacak başlatıldı, ve bazen yaramaz olmasına bağlı olarak bir tipsin newing bir POD (plain old data), ya da eğer bir sınıf içeren POD üyeleri ve kullanarak bir derleyici tarafından oluşturulan varsayılan kurucu.

  • BaÅŸlatma 2 tipi vardır C 1998: varsayılan sıfır
  • C 2003 3 baÅŸlatma türü, deÄŸeri baÅŸlatma eklendi.

Varsayalım:

struct A { int m; }; // POD
struct B { ~B(); int m; }; // non-POD, compiler generated default ctor
struct C { C() : m() {}; ~C(); int m; }; // non-POD, default-initialising m

C 98 derleyici, aşağıdaki ortaya:

  • yeni A - belirsiz deÄŸer
  • () yeni Bir - -baÅŸlatılamıyor sıfır

  • yeni B - varsayılan inÅŸa (:: B m baÅŸlatılmamış)

  • () yeni B - inÅŸa varsayılan (:: B m baÅŸlatılmamış)

  • yeni C - varsayılan inÅŸa (:: C m sıfır baÅŸlatıldı)

  • () yeni C - inÅŸa varsayılan (:: C m sıfır baÅŸlatıldı)

C 03 uyumlu bir derleyici, her şey çok gibi çalışması gerekir:

  • yeni A - belirsiz deÄŸer
  • () yeni Bir deÄŸer baÅŸlatma bir BÖLME olduÄŸu için sıfır baÅŸlatma olan,.

  • yeni B - varsayılan-baÅŸlatır (yapraklar B::m) baÅŸlatılmamış

  • () yeni B varsayılan decimal kullanıcı tanımlı olarak karşı oluÅŸturulan derleyici olduÄŸundan baÅŸlatır sıfır tüm alanları olan deÄŸer B baÅŸlatır.

  • yeni C - varsayılan-varsayılan baÅŸlatır decimal aranmasına, C,.

  • () yeni bir C - deÄŸeri-baÅŸlatır varsayılan decimal. çağıran C,

C tüm sürümleri "new A" ve "new A() çünkü" POD. arasında fark var yani

Ve dava için C 98 ve C 03 davranış arasında bir fark "new B()".

Bu deli sürücü C tozlu köşelerinden biri. Bir nesne oluştururken, bazen parens gerek/seni istiyorum, bazen, kesinlikle onları, bazen de bir önemi yok.

Bunu PaylaÅŸ:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Electro Posé

    Electro PosÃ

    21 ÅžUBAT 2013
  • Julian Smith

    Julian Smith

    31 EKİM 2006
  • StalkerJS

    StalkerJS

    15 HAZİRAN 2010