C++新特性探究(一):nullptr
code review!
1.校园笔记
nullptr
出现的目的是为了替代 NULL
。在某种意义上来说,传统 C++ 会把 NULL
、0
视为同一种东西,这取决于编译器如何定义 NULL,有些编译器会将 NULL 定义为 ((void*)0)
,有些则会直接将其定义为 0
。
C++ 不允许直接将 void *
隐式转换到其他类型,但如果 NULL
被定义为 ((void*)0)
,那么当编译 char *ch = NULL;
时,NULL
只好被定义为 0
。而这依然会产生问题,将导致了 C++
中重载特性会发生混乱。
nullptr 是用于解决NULL 和0 的有疑义关系的。
NULL 通常被义为(void