11 Aralık 2012, Salı
Nullptr kullanmanın avantajları nelerdir?
Bu kod parçasıkavramsal olaraküç işaretçiler (pointer güvenli başlatma) için aynı şeyi yapar:
int* p1 = nullptr;
int* p2 = NULL;
int* p3 = 0;
Ve onlara değerleri NULL
0
atama nullptr
atama işaretçiler avantajları nelerdir?
CEVAP
11 Aralık 2012, Salı
Bu kod, bir avantaj gibi görünmüyor. Ama bu aşırı işlevleri:
void f(char const *ptr);
void f(int v);
f(NULL); //which function will be called?
Hangi işlev çağrılır? Tabii ki, burada niyet f(int)
adı verilecek gerçeklik! 10 ** ama çağrı! Bu büyük bir sorun1değil mi?
Bu yüzden, bu tür sorunların çözümü nullptr
kullanmak için:
f(nullptr); //first function is called
Tabii ki, o nullptr
sadece avantaj değil. Burada başka bir şeydir:
template<typename T, T *ptr>
struct something{}; //primary template
template<>
struct something<nullptr_t, nullptr>{}; //partial specialization for nullptr
Şablon, nullptr
tipi nullptr_t
, birebir yana yazabilirsiniz:
template<typename T>
void f(T *ptr); //function to handle non-nullptr argument
void f(nullptr_t); //an overload to handle nullptr argument!!!
1. C NULL
temelde bu yüzden #define NULL 0
şeklinde tanımlanır f(int)
denir neden olduğunu int
,.
Bunu Paylaş:
İlişkisel veritabanına göre MongoDB gi...
HER istemci için tek bir veritabanı ku...
IIS yerine Cassini kullanarak (dez)ava...
Neden maven? Avantajları nelerdir?...
PDO kalıcı bağlantı kullanmanın dezava...