конструктор c ++ не устанавливает значения по умолчанию - PullRequest
0 голосов
/ 18 мая 2018

У меня есть конструктор для связанного списка как таковой:

    node_t(double value, node_t * next = nullptr, node_t * prev = nullptr);

Но это, кажется, не устанавливает next и prev для nullptr, когда я создаю новый node_t.

    node_t(double d, node_t * n = nullptr, node_t * p = nullptr)
    {
        val = d;
        next = n;
        prev = p;
    }

Это работает, однако, но я не понимаю, почему первый способ не работает

1 Ответ

0 голосов
/ 18 мая 2018

Это просто спецификация функции:

node_t(double value, node_t * next = nullptr, node_t * prev = nullptr);

Конструктор, инициализирующий переменные класса, должен выглядеть следующим образом:

node_t(double d, node_t * n = nullptr, node_t * p = nullptr)
    : val (d), 
    next (n), 
    prev (p) 
{}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...