Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

nullptr trong C++ là gì? Khác NULL như thế nào?


nullptr (C++11) là literal con trỏ rỗng, kiểu std::nullptr_t. Chuyển ngầm sang mọi kiểu con trỏ, không chuyển ngầm sang kiểu nguyên.

Vấn đề của NULL

NULL thường định nghĩa là 0 hoặc (void*)0. Gây ambiguous khi overload:

void f(int); void f(char*);
f(NULL); // LỖI: ambiguous (int hoặc pointer?)

Giải pháp nullptr

f(nullptr); // OK: gọi f(char*)

Dùng nullptr thay NULL mọi nơi. Ép kiểu tường minh nếu cần: (int*)nullptr.