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

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

Войти
Регистрация
Восстановить пароль
 
ХХХ
0 / 0 / 0
Регистрация: 05.06.2011
Сообщений: 7
#1

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

05.06.2011, 19:38. Просмотров 974. Ответов 12
Метки нет (Все метки)

Помогите пожалуйста, нацельте в нужном направлении. Есть такая задачка
Есть классы фигур
Triangle
Rectangle
Pintagon

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

Однонаправленные списки - C++
Подпрограмма №1 - формировка элементов первого списка тип float количество 8, включение элементов после второго. Подпрограмма №2 -...

Однонаправленные списки - C++
Сформировать список из натуральных чисел. Найти порядковые номера максимальных элементов списка. #include<iostream.h> #include<conio.h>...

однонаправленные списки - C++
Пожалуйста помогите мне!!! Записи в линейном списке содержат ключевое поле типа double. Сформировать однонаправленный список. Удалить из...

однонаправленные связные списки - C++
сформировать однонаправленный список содержащий последовательность символов s1 , s2 , . . . , sn ( n >= 2 и заранее неизвестно)....

Однонаправленные списки: найти номер позиции максимального значения списка - C++
Организовать ввод в однонаправленный список. Узел списка состоит из двух полей: целое число и указатель. Необходимо найти номер позиции...

Еще раз об операции new - C++
Верно ли что если я, выделив память операцией new, а затем забыв вернуть ее соответствующим delete, получу утечку памяти? Ну это легкий...

12
silent_1991
Эксперт С++
4989 / 3046 / 149
Регистрация: 11.11.2009
Сообщений: 7,028
Завершенные тесты: 1
05.06.2011, 19:51 #2
А вы уверены, что класс Figure должен сам по себе представлять список? Может Figure просто должен быть абстрактным, и указатели на Figure надо помещать в список (отдельный класс, возможно, библиотечный)?
0
ХХХ
0 / 0 / 0
Регистрация: 05.06.2011
Сообщений: 7
05.06.2011, 19:53  [ТС] #3
Ситуация простого однонаправленного списка более менее понятно:
Там создается узел записывается ссылка на него и т.п.

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

Я хочу создать треугольник я запускаю метод например Add передаю в общий класс указатель на мой новый объект, но как мне в базовом классе понять что это объект именно треугольник со своим набором параметров а не квадрат?
0
silent_1991
Эксперт С++
4989 / 3046 / 149
Регистрация: 11.11.2009
Сообщений: 7,028
Завершенные тесты: 1
05.06.2011, 20:19 #10
ХХХ, узнать, что это именно треугольник, в базовом классе не получится. Но можно в базовом классе определить виртуальный метод и переопределить его в производном классе. Тогда вызывая этот метод через указатель на базовый класс на самом деле метод вызовется на основании типа объекта по указателю (т.е. производного класса), а не типа указателя (базового класса). В двух словах это не объяснить, почитайте про виртуальные методы.
0
ХХХ
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 чтобы создать объект нужного типа?
0
silent_1991
Эксперт С++
4989 / 3046 / 149
Регистрация: 11.11.2009
Сообщений: 7,028
Завершенные тесты: 1
05.06.2011, 20:34 #12
ХХХ, нет. Я же сказал - прочитайте про виртуальные функции. При их использовании вам не придётся задумываться, для какой конкретно фигуры вызывается определённые метод.
0
ХХХ
0 / 0 / 0
Регистрация: 05.06.2011
Сообщений: 7
05.06.2011, 20:37  [ТС] #13
Спасибо, есть над чем подумать
0
05.06.2011, 20:37
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.06.2011, 20:37
Привет! Вот еще темы с ответами:

Ханойская башня еще раз - C++
Ну ни как не могу понять.Объясните как тут рекурсия работает. #include <iostream> using namespace std; void...

Еще раз о конструкторе по умолчанию - C++
Какой конструктор считается конструкторомм по умолчанию, которому НЕ ПЕРЕДАЮТСЯ НИКАКИЕ АРГУМЕНТЫ, или же и тот конструктор, КОТОРОМУ ЯВНО...

Еще раз о vector и очистке памяти - C++
Привет всем! Создаю консольное приложение в RAD Studio. Код: vector<int> IntVect; getch(); int i; for (i = 0; i <...

Определить встречается ли значение i-го элемента еще раз в односвязном списке - C++
Подскажите пожалуйста функцию , которая определяет встречается ли значение итого элемента еще раз в односвязном списке ?


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

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