如何在.cpp文件中使用NULL?

Con*_*ang 3 c++ null-pointer

我现在正在研究唯一的实例(在c ++中),我在.cpp文件中尝试了以下代码.

#include "OnlyInstance.h"

OnlyInstance* OnlyInstance::instance = NULL;
..........
Run Code Online (Sandbox Code Playgroud)

但是编译器告诉我"错误C2065:'NULL':未声明的标识符".这意味着,我应该这样做

#include <stdio.h> 
Run Code Online (Sandbox Code Playgroud)

在它面前?但我还在主文件中包含了stdio.h.因此编译时会多次包含stdio.h,对吗?如何正确使用NULL?

另一个问题是,我知道我可以使用0而不是NULL,但在c ++中更推荐哪种方式?

Bau*_*gen 11

NULL在各种标题中定义,例如在<cstddef>.

但是nullptr,NULL如果您的编译器支持,您应该更喜欢它.

多次包含标题是没有问题的(如果标题没有被严重破坏,标准标题不是这样).


小智 5

NULL只是一个值为0的定义.它完全相同.

但是如果你有权访问C++ 11,我建议使用nullptr.