Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Центр помощи > [c++] Списки и шаблонные классы |
Автор: PRF 25.4.2008, 17:57 |
Здарвствуйте, помогите пожалуйста, дано вот такое задание: Средствами языка С++ создать шаблонный класс узлов для двусвязных списков DNode<T>. Реализовать односвязный список в виде шаблонного класса DoubleList<T>, используя средства языка С++, на базе объектов шаблонного класса DNode<T>. Разработать main - программу для тестирования всех открытых функций-членов созданного класса и созданной процедуры. Шаблонные классы я знаю как делать, но вот со списком используя классы (причем вроде бы преподаватель сказал, что в закррытой области должны храниться указатель на предыдущий и следующий элемент списка, а в открытой ключ (данные)). |
Автор: PRF 27.4.2008, 00:48 |
Можете сказать, хоть, что это значит "шаблонный класс узлов для двусвязных списков "??? |
Автор: PRF 27.4.2008, 11:02 |
АГА спасибо большое, мне это и надо было в принципе узнать!! |
Автор: PRF 30.4.2008, 21:16 | ||
а вот подскажите пожалуйста как еще можно создавать новый элемент используя всего три поля без идентификатора, который бы обобщал эти поля. Как допустим переменная типа структура.
заранее спасибо! |
Автор: creatorcode 1.5.2008, 00:03 | ||
Попробуй так:
|
Автор: PRF 1.5.2008, 00:22 | ||
Ага спасибо, но похоже здесь без дополнительной переменной все равно не обойтись потому что дальше если создавать новые элементы, то this не присвоить next
|
Автор: creatorcode 1.5.2008, 03:22 | ||
Если я правильно понял Вы хотите вставить элемент в конец списка? Вообще-то я бы несколько иначе все это спроектировал.
|
Автор: PRF 1.5.2008, 23:57 |
А можно организовать процедуру для вставки элементов в классе DNode, а не DList, или этого никак нельзя сделать используя те данные описанные выше??? |
Автор: creatorcode 2.5.2008, 00:14 | ||||
Просто это лишено смысла. ![]() К тому же Вы сами писали:
DNode служит лишь для хранения данных об узле и манипулировании одним узлом. Для операций со списком следует использовать DList. |
Автор: PRF 2.5.2008, 13:55 |
Спасибо большое!!! Тогда сделаем!! А вот еще вопрос, если мы поместили указатели в next и prev в private, то им же нельзя ничего присваивать из DList!!! Как это можно обойти, в public записывать нельзя, и если не использовать ключевое слово friend??? |
Автор: creatorcode 2.5.2008, 16:27 |
А чем Вас не устраивает friend? В принципе можно написать в классе DNode методы SetData\GetData, SetNext\GetNext,SetPrev\GetPrev для записи и чтения скрытых полей класса. (или как вариант методы, возвращающие ссылку на поле). |