Форум программистов, компьютерный форум CyberForum.ru

Мультисписок на базе бестиповых указателей (оцените код и подскажите что исправить ) - C++

Восстановить пароль Регистрация
 
CROSP
3 / 3 / 0
Регистрация: 13.06.2012
Сообщений: 114
19.10.2013, 14:30     Мультисписок на базе бестиповых указателей (оцените код и подскажите что исправить ) #1
Здравствуйте ,
Задача стояла реализовать мультисписковую структуру на базе массива бестиповых указателей.
Структура примерно выглядит так прикрепленном изображении.
Делал отдельный шаблонный класс который работал со массивом бестиповых указателей.
А уже в структуре сделал поле указатель на этот объект этого класса.
Но мне не нравится реализация моя . Хотелось бы сделать как-то более обобщенно.
Внешний класс mainUniv работает только с такой структурой данных как на изображении .
Хотелось бы как-то реализовать, так чтобы внеся небольшие изменения можно было работать с большим количеством подуровней в списке , а не переделывать полностью класс.
Кто может , оцените пожалуйста и прокомментируйте, что можно ( или нужно) было сделать по другому.
Вот исходники на gite - https://github.com/CROSP/VoidArrayList
Спасибо огромное всем заранее .
Миниатюры
Мультисписок на базе бестиповых указателей (оцените код и подскажите что исправить )  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.10.2013, 14:30     Мультисписок на базе бестиповых указателей (оцените код и подскажите что исправить )
Посмотрите здесь:

C++ Подскажите что не правильно чему оно не так выводит и по возможности исправьте ошибки вот условие и код программы
Посмотрите код, подскажите что исправить C++
C++ Народ гляньте код и подскажите что не так.
Вот код, подскажите как исправить ошибку, пожалуйста??? C++
C++ Переписать код с использованием указателей на функцию
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Fyret
184 / 170 / 13
Регистрация: 30.07.2013
Сообщений: 359
19.10.2013, 16:00     Мультисписок на базе бестиповых указателей (оцените код и подскажите что исправить ) #2
Чтобы порассуждать на тему как лучше сделать, надо хотя бы понимать, что нужно сделать. Мне, например, не очень понятно. Что такое мультисписковая структура и зачем тут нужны бестиповые указатели?

У Вас же вполне конкретная иерархия: есть список указателей объектов одного типа, каждый объект содержит в себе указатель (кстати, зачем указатель?) на список объектов другого типа, у тех объектов тоже есть свой список.
В общем, я совсем не понимаю, при чем тут бестиповые указатели.

Кстати, согласно принципа инкапсуляции, ни один класс ничего не должен знать о внутреннем устройстве любого другого класса. У Вас же почти вся логика реализована в pointerArray.

Еще могу заметить, что функция (main) на 8 экранов - это мягко говоря, совсем нехорошо.
CROSP
3 / 3 / 0
Регистрация: 13.06.2012
Сообщений: 114
20.10.2013, 11:16  [ТС]     Мультисписок на базе бестиповых указателей (оцените код и подскажите что исправить ) #3
Бестиповые указатели для того чтобы можно было хранить элементы любого типа в массиве. Но вот функцию удаления я не придумал как сделать без приведения типов , вот и использовал шаблонный класс .
Подскажите как правильнее реализовать данную структуру .
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
20.10.2013, 12:12     Мультисписок на базе бестиповых указателей (оцените код и подскажите что исправить ) #4
Эмм... как то сложно всё у вас)
C++
1
2
3
4
5
6
7
8
9
10
11
12
struct faculty {
   // ...
};
 
struct university {
   // ...
   std::list<faculty> faculties;   // список факультетов
};
 
int main() {
   std::list<university> universities;   // список университетов
}
CROSP
3 / 3 / 0
Регистрация: 13.06.2012
Сообщений: 114
20.10.2013, 15:41  [ТС]     Мультисписок на базе бестиповых указателей (оцените код и подскажите что исправить ) #5
Нужно без использования стандартных классов
Yandex
Объявления
20.10.2013, 15:41     Мультисписок на базе бестиповых указателей (оцените код и подскажите что исправить )
Ответ Создать тему
Опции темы

Текущее время: 23:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru