Default value of a struct member

三世轮回 提交于 2021-02-08 21:41:49

问题


(I'm sure this question has already been answered, I'm just not sure on the right words to use to ask it. If someone would tell me what the correct terminology is that would be awesome!)

I'm implementing a HashSet in C++ for a data structures class, and I have a question about C++ syntax regarding structs. Here is my code:

struct HashNode
{
    T value;
    HashNode* next = nullptr;
};

Will this code correctly initialize the next pointer to nullptr when new HashNode is called? If not, what is the value of next after new HashNode?


回答1:


Will this code correctly initialize the next pointer to nullptr when new HashNode is called?

Yes, it will be initialized to nullptr. This is in-class brace-or-equal initializer (default member initializer) (since C++11), it will be used if the member is omitted in member initializer list.

Through a default member initializer, which is simply a brace or equals initializer included in the member declaration, which is used if the member is omitted in the member initializer list

If a member has a default member initializer and also appears in the member initialization list in a constructor, the default member initializer is ignored.



来源:https://stackoverflow.com/questions/37369924/default-value-of-a-struct-member

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!