Member NFOC Ответов: 1

В чем проблема в этом коде?


class Node {
public:
	int value;
	Node* next=NULL;
	

	Node() {
		next = new Node();
		next->next = NULL;
	}
};


Что я уже пробовал:

Каждый раз, когда я создаю новый объект этого класса. Я получаю переполнение стека исключений.

1 Ответов

Рейтинг:
5

OriginalGriff

Просто: первое, что делает ваш конструктор узлов, - это пытается построить новый экземпляр узла. Который вызывает конструктор узла для этого экземпляра объекта, и конструктор пытается создать другой новый экземпляр узла. Поэтому конструктор вызывается для того, который ... и у вас заканчивается место в стеке.

Решение: не создавайте новый узел в конструкторе узлов!


CPallini

5.

KarstenK

Это рекурсивный вызов конструктора. :-O