c++11 后nullptr;
nullptr出现的目的是为了替代NULL。
传统C++会把NULL、0视为同一种东西,这取决于编译器如何定义NULL,不同的编译器定义不同:
有些会把NULL定义为((void*)0)
有些则会直接将其定义为0。
当NULL被定义成((void)0) 时,如果 char *ch =NULL; NULL被定义成0,导致重载特征混乱。如:
void func(int);
void func(char *);
func(NULL)这个语句将会去调用func(int),从个人导致代码违反直观性。nullptr的类型为nullptr_t,能够隐式地转换为任何指针或成员指针的类型,也能和他们进行相等或者不等的比较