Значение по умолчанию члена структуры

(Я уверен, что на этот вопрос уже был дан ответ, я просто не уверен, какие слова использовать, чтобы задать его. Если бы кто-нибудь сказал мне, какова правильная терминология, это было бы здорово!)

Я реализую HashSet в C++ для класса структур данных, и у меня есть вопрос о синтаксисе C++ в отношении структур. Вот мой код:

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

Будет ли этот код корректно инициализировать указатель next на nullptr при вызове new HashNode? Если нет, то каково значение next после new HashNode?


person bakester14    schedule 22.05.2016    source источник


Ответы (1)


Будет ли этот код правильно инициализировать следующий указатель на nullptr при вызове нового HashNode?

Да, он будет инициализирован как nullptr. Это внутриклассовый инициализатор скобок или равенства (инициализатор элемента по умолчанию) (начиная с C++11), он будет использоваться, если элемент отсутствует в списке инициализаторов членов.

Через инициализатор члена по умолчанию, который представляет собой просто инициализатор скобки или равенства, включенный в объявление члена, который используется, если член опущен в списке инициализаторов члена.

Если член имеет инициализатор члена по умолчанию, а также появляется в списке инициализации члена в конструкторе, инициализатор члена по умолчанию игнорируется.

person songyuanyao    schedule 22.05.2016
comment
Спасибо за терминологию! - person bakester14; 22.05.2016