В чем проблема в этом коде?
class Node { public: int value; Node* next=NULL; Node() { next = new Node(); next->next = NULL; } };
Что я уже пробовал:
Каждый раз, когда я создаю новый объект этого класса. Я получаю переполнение стека исключений.
class Node { public: int value; Node* next=NULL; Node() { next = new Node(); next->next = NULL; } };
Просто: первое, что делает ваш конструктор узлов, - это пытается построить новый экземпляр узла. Который вызывает конструктор узла для этого экземпляра объекта, и конструктор пытается создать другой новый экземпляр узла. Поэтому конструктор вызывается для того, который ... и у вас заканчивается место в стеке.
Решение: не создавайте новый узел в конструкторе узлов!
5.
Это рекурсивный вызов конструктора. :-O