@Koala-Punch

Как создать связный список?

Вечер добрый! Собственно вопрос назрел: хочу я создать СС при помощи статических компонент класса, но не могу сообразить как это сделать
набросал пока для 2х классов определение (остальное, полагаю по тому же принципу и по сути ctrl+c):
spoiler

class test{
int field_1;
public:
test(int field_1 = 0);
virtual~test(); //а вот что с деструктором поделать? я так понимаю коль наследую то его можно virtual
};
//=====
class example public : test{
int field_2;
public:
example (int field_2 = 0);
};
//====
static var = 0;
int main(){
*somecalls*
}
  • Вопрос задан
  • 237 просмотров
Пригласить эксперта
Ответы на вопрос 3
@Mercury13
Программист на «си с крестами» и не только
1. Виртуальный деструктор тут нужен — ведь в списке будут вперемешку элементы разных классов.
2. Не видны два компонента, которые и делают список связным — указатель на следующий элемент (test* next) и указатель на голову (test* head = NULL).
3. В попытке скрыть реальную жизненную задачу — ведь СС не вещь в себе, а решает какую-то задачу вроде «держать список объектов в игре» — вы слишком уж напереименовывались.
Ответ написан
TiersWar
@TiersWar
Ничего не знаю, ковыряюсь мало-помалу.
Насколько я понимаю, виртуальный деструктор нужен только тогда, когда уничтожение производных и базового классов должны отличаться. У вас пока нет каких-либо выделений памяти или чего-то отличающегося, так что при использовании виртуального деструктора к производным классам добавиться пока что не нужный указатель на таблицу виртуальных функций.
Как вы хотите сделать ссылки на элементы списка статическими компонентами класса? Ссылки же должны быть разными, а статические переменные общие?
https://ru.wikipedia.org/wiki/%D0%A1%D0%B2%D1%8F%D...
Ответ написан
@John_Nash
coder
не нужно изобретать велосипед
все давно придумано
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы