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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
CROSP
3 / 3 / 0
Регистрация: 13.06.2012
Сообщений: 114
#1

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

19.10.2013, 14:30. Просмотров 591. Ответов 4
Метки нет (Все метки)

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

Посмотрите код, подскажите что исправить - C++
Вот 4 дня назад начал изучать C++ Учительница по информатике дала задачу: Вводятся 3 числа. Если положительное - возвести во 2...

Что есть мультисписок? - C++
Дали такое задание - организовать нелинейную структуру. Само задание на рисунке. Прочитал методичку несколько раз, перерыл кучу сайтов...

Подскажите как исправить код - C++
ТЗ: В матрице в строках с отрицательным элементом на главной диагонали найти наибольший элемент строки и минимум среди них Мой...

Подскажите как исправить код - C++
Исправить чтобы дважды не менялось одно и тоже поле #include <iostream> #include <ctime> #include <windows.h> using namespace std; ...

Вот код, подскажите как исправить ошибку, пожалуйста??? - C++
Вот вибивает такие ошибки: 1>c:\users\user\desktop\ооп 6\ооп 6\ооп6.cpp(40) : error C2661: D3:: D3: нет перегруженной функции,...

Создать связный мультисписок на основе указателей с использованием принципов ООП - C#
Здравствуйте. Имею задание: создать связный мультисписок на основе указателей с использованием принципов ООП. Для реализации решил выбрать...

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

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

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

Еще могу заметить, что функция (main) на 8 экранов - это мягко говоря, совсем нехорошо.
1
CROSP
3 / 3 / 0
Регистрация: 13.06.2012
Сообщений: 114
20.10.2013, 11:16  [ТС] #3
Бестиповые указатели для того чтобы можно было хранить элементы любого типа в массиве. Но вот функцию удаления я не придумал как сделать без приведения типов , вот и использовал шаблонный класс .
Подскажите как правильнее реализовать данную структуру .
0
gray_fox
What a waste!
1520 / 1223 / 70
Регистрация: 21.04.2012
Сообщений: 2,560
Завершенные тесты: 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;   // список университетов
}
0
CROSP
3 / 3 / 0
Регистрация: 13.06.2012
Сообщений: 114
20.10.2013, 15:41  [ТС] #5
Нужно без использования стандартных классов
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.10.2013, 15:41
Привет! Вот еще темы с ответами:

Подскажите, "Код ошибки: 0x0000007e (..." что это такое и как исправить? - BSOD
Код ошибки: 0x0000007e (0xc0000005, 0x82ebc4ae, 0x9bcc1ba8, 0x9bcc1780). Просходит это постоянно, если компьютер стоит включенный, но без...

Подскажите что исправить что добавить.И какой будет производительность - Выбор компьютера
Блок питания AEROCOOL VX-500, 500Вт, 120мм, черный Видеокарта MSI Radeon R7 370, R7 370 GAMING 4G, 4Гб, GDDR5, Материнская плата...

Поясните, что делает этот код с использованием указателей - Delphi
Пытаюсь понять чужой код, который нашел в сети, там есть такое: type PListEntry32 = ^TListEntry32; TListEntry32 = packed...

Подскажите, как исправить код - Delphi
Условие на картинке, а вот код: implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
20.10.2013, 15:41
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru