(我确定这个问题已经得到了解答,我只是不确定用正确的词语来问它。如果有人会告诉我正确的术语是什么太棒了!)
我在C ++中为数据结构类实现HashSet
,并且我对有关结构的C ++语法有疑问。这是我的代码:
struct HashNode
{
T value;
HashNode* next = nullptr;
};
当调用next
时,此代码是否会正确初始化nullptr
指向new HashNode
的指针?如果不是,next
之后new HashNode
的价值是多少?
答案 0 :(得分:4)
当调用新的HashNode时,此代码是否会正确初始化指向nullptr的下一个指针?
是的,它会被初始化为nullptr
。这是in-class brace-or-equal initializer (default member initializer)(从C ++ 11开始),如果在成员初始化列表中省略了成员,则会使用它。
通过默认的成员初始化程序,它只是一个大括号或 等于使用的成员声明中包含的初始化程序 如果在成员初始化列表
中省略了该成员如果成员具有默认成员初始值设定项并且也出现在 构造函数中的成员初始化列表,默认成员 初始化程序被忽略。