在我的C ++类(头文件)中,我正在使用此:
int pWholesalerId;
现在,我已经创建了一个默认的构造函数。可以将此属性的值设置为null吗?
Game::Game()
{
gId = 0;
pWholesalerId = Null;
}
当前,即使我已经在使用identifier "Null" is undefined
,我也会得到#include <stddef.h>
编号
没有将int
设置为null的事情。 int
是数字。它们不是“可为空”。
您可以考虑像std::unique_ptr<int>
这样的动态分配(尽管对于int
来说这很繁重)或std::optional<int>
。
或者,只需跟踪int
的值是否“有意义”即可(例如,使用布尔值或检查类状态的其他方面)。根据您的要求,将其设置为0
可能会或可能不会实现此目标。
在C标头<stddef.h>
或C ++标头<cstddef>
中没有宏Null。定义了宏NULL
。但是它用于通过空指针常量初始化指针。
在构造函数中,您应该只写
pWholesalerId = 0;
简单地写
int pWholesalerId = 0;
在头文件中,对于gId
使用类似的语句,然后完全删除默认构造函数。
Null
未由标准C ++定义。 NULL
是,但是其含义在C和C ++中有所不同,最好避免使用。用0
分配给int
,用nullptr
分配指针类型。