在默认构造函数中使用NULL



在我的C++类(头文件(中,我使用的是:

int pWholesalerId;

现在,我已经创建了一个默认构造函数。是否可以将此属性的值设置为null?

Game::Game()
{
gId = 0;
pWholesalerId = Null;
}

目前,我得到了identifier "Null" is undefined,尽管我已经在使用#include <stddef.h>

否。

不存在将int设置为null这样的事情。ints是数字。它们不是"可以为null"的。

您可以考虑像std::unique_ptr<int>(尽管这对于int来说非常重(或std::optional<int>这样的动态分配。

或者,只需自己跟踪int的值是否"有意义"(例如,使用bool,或者通过检查类状态的其他方面(。根据您的要求,将其设置为0可能会实现此目标,也可能不会实现此目标。

在C标头<stddef.h>或C++标头<cstddef>中没有宏Null。定义了宏CCD_ 12。但它是用来通过一个空指针常量初始化指针的。

在你的构造函数中,你应该只写

pWholesalerId = 0;

简单编写

int pWholesalerId = 0;

在头文件中,使用类似的gId语句,然后完全删除默认构造函数。

CCD_ 14不是由标准C++定义的。NULL是,但它的含义在C和C++中各不相同,最好避免使用。使用0分配给int,使用nullptr分配给指针类型。

相关内容

  • 没有找到相关文章