我是靠谱客的博主 温婉飞鸟,这篇文章主要介绍C++11新特性之 nullptr,现在分享给大家,希望可以做个参考。

我们知道在编程的世界里,0有双重的角色,可以表示整数零,也可以表示一个空指针。

在C语言中,通过预编译宏NULL,可以区分0表示的是零还是(void*)0.

但是,在C++的世界中,这样是不可以的。C++中允许函数重载。例如:

void foo(char *);
void foo(int);

如果把NULL定义为0,那么foo(NULL)将调用哪个函数呢?

这样的话,编译器不会知道调用哪个函数。

所以C++11引入了另一个关键字nullptr,作为一个空指针。

char *pc = nullptr;     // OK
int  *pi = nullptr;     // OK
bool   b = nullptr;     // OK. b is false.
int    i = nullptr;     // error

foo(nullptr);           // calls foo(char *), not foo(int);

最后

以上就是温婉飞鸟最近收集整理的关于C++11新特性之 nullptr的全部内容,更多相关C++11新特性之内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(176)

评论列表共有 0 条评论

立即
投稿
返回
顶部