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
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
). nullptr
iş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 prvaluestd::nullptr_t
bir null işaretçi sabit olduğu ve ayrılmaz bir null işaretçistd::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 venullptr
geçen işaretçi sürümünü seçmek için izin verir.NULL
0
geçen karışacakint
sürümü seçin.Ayrılmaz bir türü için
nullptr_t
dökümreinterpret_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çinnullptr_t
dönüştürün. Mümkünse örtülü dönüşüm güveniyor yastatic_cast
kullanın.Standart
sizeof(nullptr_t)
27 ** olmasını gerektirir.
Tam olarak Huzurlu programlama nedir?...
Bir JavaBean tam olarak nedir?...
Tam olarak Maven bir Anlık nedir ve ne...
Tam olarak nasıl android:özelliği XML ...
Tam olarak kaynak nedir?...