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

Еще раз однонаправленные списки - C++

Восстановить пароль Регистрация
 
ХХХ
0 / 0 / 0
Регистрация: 05.06.2011
Сообщений: 7
05.06.2011, 19:38     Еще раз однонаправленные списки #1
Помогите пожалуйста, нацельте в нужном направлении. Есть такая задачка
Есть классы фигур
Triangle
Rectangle
Pintagon

Есть общий класс Figure который представляет однонаправленный список. В классе Figure есть метод позволяющий добавить фигуру из вышеуказанного типа. Помогите реализовать систему.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.06.2011, 19:38     Еще раз однонаправленные списки
Посмотрите здесь:

C++ Однонаправленные списки
однонаправленные списки C++
Ханойская башня еще раз C++
C++ Еще раз об операции new
Динамические структуры данных-Однонаправленные списки C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
05.06.2011, 19:51     Еще раз однонаправленные списки #2
А вы уверены, что класс Figure должен сам по себе представлять список? Может Figure просто должен быть абстрактным, и указатели на Figure надо помещать в список (отдельный класс, возможно, библиотечный)?
ХХХ
0 / 0 / 0
Регистрация: 05.06.2011
Сообщений: 7
05.06.2011, 19:53  [ТС]     Еще раз однонаправленные списки #3
Ситуация простого однонаправленного списка более менее понятно:
Там создается узел записывается ссылка на него и т.п.

Тут надо создавать фигуру одного из указанного типа, я не могу понять как((( подскажите в каком направлении смотреть
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
05.06.2011, 19:55     Еще раз однонаправленные списки #4
Для меня ситуация ещё более запуталась. Что конкретно вам надо сделать?
ХХХ
0 / 0 / 0
Регистрация: 05.06.2011
Сообщений: 7
05.06.2011, 19:55  [ТС]     Еще раз однонаправленные списки #5
Он должен представлять класс контейнер и быть реализован в виде однонаправленного списка
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
05.06.2011, 19:56     Еще раз однонаправленные списки #6
ХХХ, т.е. класс Figure должен представлять собой список? Бред полный...
ХХХ
0 / 0 / 0
Регистрация: 05.06.2011
Сообщений: 7
05.06.2011, 19:57  [ТС]     Еще раз однонаправленные списки #7
Я уже голову сломал, но такую дали задачу
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
05.06.2011, 20:00     Еще раз однонаправленные списки #8
ХХХ, тут не голову ломать надо, а объяснить преподавателю, что он ни черта в ООП не понимает... На кой чёрт делать Figure списком, если от неё потом будут наследоваться остальные фигуры.
Ладно, абстрагируемся от некомпетентности 90% преподавателей... Писать я этот бред не буду, но, если хотите, попробую посоветовать, как этот бред написать вам. Что вам не понятно?
ХХХ
0 / 0 / 0
Регистрация: 05.06.2011
Сообщений: 7
05.06.2011, 20:03  [ТС]     Еще раз однонаправленные списки #9
Спасибо. Смотрите вот например у меня есть класс треугольник он наследник общего класса фигуры.

Я хочу создать треугольник я запускаю метод например Add передаю в общий класс указатель на мой новый объект, но как мне в базовом классе понять что это объект именно треугольник со своим набором параметров а не квадрат?
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
05.06.2011, 20:19     Еще раз однонаправленные списки #10
ХХХ, узнать, что это именно треугольник, в базовом классе не получится. Но можно в базовом классе определить виртуальный метод и переопределить его в производном классе. Тогда вызывая этот метод через указатель на базовый класс на самом деле метод вызовется на основании типа объекта по указателю (т.е. производного класса), а не типа указателя (базового класса). В двух словах это не объяснить, почитайте про виртуальные методы.
ХХХ
0 / 0 / 0
Регистрация: 05.06.2011
Сообщений: 7
05.06.2011, 20:30  [ТС]     Еще раз однонаправленные списки #11
Вот как я думал
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Figure
{
  public:
  Figure();
  ~Figure();
     add(int value)
    {
       Figure *elem = new Figure;
       elem->value=value++;
       elem->pNext=top; 
       top=elem;
    }
  private: 
    Figure *top;
    Figure *next;
}
Это добавление элемента
но вопрос

есть класс
C++
1
2
3
4
class Triangle :public Figure 
{
  здесь свои методы
}
Вопрос мне нужно завести фигуру указанных типов я как понимаю это можно реализовать через enum где будут указанны типы? Мне придется в main использовать что-то вроде case чтобы создать объект нужного типа?
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
05.06.2011, 20:34     Еще раз однонаправленные списки #12
ХХХ, нет. Я же сказал - прочитайте про виртуальные функции. При их использовании вам не придётся задумываться, для какой конкретно фигуры вызывается определённые метод.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.06.2011, 20:37     Еще раз однонаправленные списки
Еще ссылки по теме:

C++ Однонаправленные списки
C++ однонаправленные связные списки
C++ Еще раз про ссылки

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

Или воспользуйтесь поиском по форуму:
ХХХ
0 / 0 / 0
Регистрация: 05.06.2011
Сообщений: 7
05.06.2011, 20:37  [ТС]     Еще раз однонаправленные списки #13
Спасибо, есть над чем подумать
Yandex
Объявления
05.06.2011, 20:37     Еще раз однонаправленные списки
Ответ Создать тему
Опции темы

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