nullptr

Version >= C++ 11

一個關鍵字表示一個空指標常數。它可以轉換為任何指標或指向成員的型別,從而產生結果型別的空指標。

Widget* p = new Widget();
delete p;
p = nullptr; // set the pointer to null after deletion

請注意,nullptr 本身不是指標。nullptr 的型別是一種稱為 std::nullptr_t 的基本型別。

void f(int* p);

template <class T>
void g(T* p);

void h(std::nullptr_t p);

int main() {
    f(nullptr); // ok
    g(nullptr); // error
    h(nullptr); // ok
}