C++中 尽量使用 nullptr 对 指针进行初始化,而不是使用NULL
nullptr 是C++11中引入的。
NULL实际上就是0.
为了解决 函数重载 中的一些问题
void func444(int a ) {
cout << "func 444 int call" << endl;
}
void func444(int *a) {
cout << "func 444 int* call" << endl;
}
调用
func444(NULL);
结果为
"func 444 int call"
但是实际上user 是想调用 func444(int *a)
原因是 NULL 是 #define NULL 0
C++ 为了类似这样的问题,引入了nullptr
使用 typeid()函数查看当前类型名字
const char * nullname = typeid(NULL).name();
cout << "nullname = " << nullname << endl;
const char * nullptrname = typeid(nullptr).name();
cout << "nullptrname = " << nullptrname << endl;
//运行结果:
// nullname = int
// nullptrname = std::nullptr_t