用nullptr初始化指针而不是null
void f(int) {} void f(bool) {} void f(void*) {} func(0);//调用f(int) func(true);//调用f(bool) func(NULL);//调用f(int) #define NULL 0 f(nullptr);//调用f(void*)
nullptr的优势在于它不再是一个整数类型.你可以理解为它是一个可以指向任意类型的指针.nullptr的类型实际上是std::nullptr_t.std::nullptr可以隐式转换为所有的原始指针,这使得nullptr表现的像可以指向任意类型的指针.