SORU
15 AĞUSTOS 2009, CUMARTESİ


Nullptr tam olarak nedir?

Biz şimdi birçok yeni özellik ile C 11. İlginç ve kafa karıştırıcı bir tane (en azından benim için) nullptr Yeni.

İyi, kötü makro gerek yok artık NULL.

int* x = nullptr;
myclass* obj = nullptr;

Hala, nullptr işlerin nasıl yürüdüğünü bilmiyor alıyorum. Örneğin, Wikipedia article diyor ki:

C 11 yeni getirerek bu düzeltiranahtar kelimeseçkin bir null işaretçi olarak hizmet: nullptr.yazın nullptr_törtük olarak dönüştürülebilir ve herhangi bir işaretçi türü veya işaretçi-üye türü için karşılaştırılabilir., Örtük olarak dönüştürülebilir ya da bool dışında ayrılmaz türleri için karşılaştırılabilir değil.

Nasıl bir anahtar kelime ve bir türünün bir örneği mi?

Ayrıca, nullptr eski üstün iyi 0 başka bir örnek (Wikipedia bir yanında) var mı?

CEVAP
15 AĞUSTOS 2009, CUMARTESİ


Nasıl bir anahtar kelime ve bir türünün bir örneği mi?

Bu şaşırtıcı değil. Her iki true false anahtar kelimeler ve harflerin bir türü ( bool ). nullptrişaretçisi değişmeztür std::nullptr_t ve bir prvalue (ağ & kullanarak alamazsın).

  • İşaretçi dönüşüm hakkında 4.10 türünde bir prvalue std::nullptr_t bir null işaretçi sabit olduğu ve ayrılmaz bir null işaretçi std::nullptr_t dönüştürülebilir " diyor. Ters yönde izin verilmez. Bu iki işaretçileri ve tamsayılar için bir fonksiyon aşırı yükleme ve nullptr geçen işaretçi sürümünü seçmek için izin verir. NULL 0 geçen karışacak int sürümü seçin.

  • Ayrılmaz bir türü için nullptr_t döküm reinterpret_cast, bir ihtiyaç ve vazgeçilmez bir türü için (void*)0 bir döküm olarak aynı mantığı (eşleme uygulama tanımlı). * *23 herhangi bir işaretçi türü için nullptr_t dönüştürün. Mümkünse örtülü dönüşüm güveniyor ya static_cast kullanın.

  • Standart sizeof(nullptr_t) 27 ** olmasını gerektirir.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • MikeyMacintosh

    MikeyM

    28 Aralık 2009
  • Nickcidious

    Nickcidious

    6 HAZİRAN 2011
  • Phandroid

    Phandroid

    26 Ocak 2009