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

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

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

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

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

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

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

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

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

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

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

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

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

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 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
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
05.06.2011, 19:55     Еще раз однонаправленные списки #4
Для меня ситуация ещё более запуталась. Что конкретно вам надо сделать?
ХХХ
0 / 0 / 0
Регистрация: 05.06.2011
Сообщений: 7
05.06.2011, 19:55  [ТС]     Еще раз однонаправленные списки #5
Он должен представлять класс контейнер и быть реализован в виде однонаправленного списка
silent_1991
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
05.06.2011, 19:56     Еще раз однонаправленные списки #6
ХХХ, т.е. класс Figure должен представлять собой список? Бред полный...
ХХХ
0 / 0 / 0
Регистрация: 05.06.2011
Сообщений: 7
05.06.2011, 19:57  [ТС]     Еще раз однонаправленные списки #7
Я уже голову сломал, но такую дали задачу
silent_1991
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 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
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 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
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
05.06.2011, 20:34     Еще раз однонаправленные списки #12
ХХХ, нет. Я же сказал - прочитайте про виртуальные функции. При их использовании вам не придётся задумываться, для какой конкретно фигуры вызывается определённые метод.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.06.2011, 20:37     Еще раз однонаправленные списки
Еще ссылки по теме:

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

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

Подскажите еще раз пожалуйста, почему во 2 столбце не выводит слова? - C++
#include <stdio.h> #include "iostream" int main(void) { setlocale(0,""); unsigned short cs1, cs2, cs3; char name1, name2,...

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

Еще раз про setw: не определяется, хотя все файлы импортированы - C++
скрины как решилась проблема.


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

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

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