The*_*ang 1 c++ qt pointers nullptr
当我阅读 Qt 的一些示例代码时,我通常会看到它们初始化了一个指向 的指针nullptr,例如:
QPushButton *startButton = nullptr;
Run Code Online (Sandbox Code Playgroud)
我有一些非常基本的概念nullptr,但自从我开始学习 C++ 以来,我从未真正使用过它。所以我想知道为什么他们会初始化一个指向nullptr而不是这样做的指针:QPushButton *startButton;,这样做有什么好处,我什么时候需要初始化指向nullptr?
提前致谢。
您需要在读取之前初始化一个指针。
如果您只是有时在读取之前将其初始化为一个合理的值,那么nullptr在声明点将其初始化是有意义的,因为您将能够检测到nullptr“尚未初始化为合理的值”。
如果您的程序中有一个路径可以在初始化之前读取它,那么让指针未初始化是不好的,因为读取未初始化的变量是未定义的行为。