|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
26.11.2009, 13:13 | #1 |
Форумчанин
Регистрация: 24.05.2009
Сообщений: 119
|
Массив указателей (с помощью ООП)
Привет всем!
Вот у меня такое задание - реализовать ммассив из динам-х очредей со всеми типовыми операциями для данной струк-ры. Т.е создается массив, элементами которого должны быть собственно очереди, а очереди заполняются нашими данными (например с типом integer). В консольном варианте я это сделала, теперь надо это же задание решить с помощью ООП. В общем я подумала и решила создать 3 класса: Класс TQItem будет хранит элемент очереди Класс TQueue будет хранить собственно очередь (содеожит все объекты класса TQItem). Класс TMassQu обьявляем контейнерным. Будет иметь одно свойство – масссив из N элементов типа TQueue, т.е. объявим как массив из очередей. Вроде классы описала, но у меня возникли первые трудности - как написать процедуру Constructor Create для этих классов. Я знаю, что конструктор Create нужен для выделение памяти и его нужно обязательно ввести. Но мне не понятно, как это сделать для этих классов... Помогите мне разобраться в этом вопросе, пожалуста (просто я начала изучать ООП только в этом семестре и пока я еще не все понимаю). вот моя наработка Код:
|
26.11.2009, 13:17 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Можно глупый вопрос?
Если это в Делфи, то не хочешь ли ты воспользоваться уже имеющимися средствами TListObject, TQueue и пр.? Или преподаватели запрещают?
I'm learning to live...
|
26.11.2009, 13:34 | #3 |
Ищу работу
Форумчанин
Регистрация: 16.02.2007
Сообщений: 269
|
"Реализация конструктора несколько необычна. Во-первых, в теле конструктора нет привычных операторов New, обеспечивающих выделение динамической памяти (всю необходимую работу по выделению памяти выполняет компилятор). Во-вторых, формально конструктор не возвращает значения, хотя в программе обращение к конструктору осуществляется как к методу-функции."
память и так выделяется при использовании конструктора.
Пишу на Delphi все что угодно, недорого, красиво, с комментариями
###icq 107335###
|
26.11.2009, 13:35 | #4 | |
Форумчанин
Регистрация: 24.05.2009
Сообщений: 119
|
Цитата:
Даже не знаю... На Делфи я делала только консольные приложения. А можно тоже глупый вопрос - а как лучше сделать, так чтобы была польза, чтобы научиться и понять предмет изучения? Ну я имею в виду как будет лучше - воспользоваться средствами Делфи или самой делать? |
|
26.11.2009, 14:18 | #5 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Вот тее небольшой ликбез:
Код:
Есть также TQueue - Это очередь. ею можно заменить TObjectList в соответствии с заданием. Вопросы будут?
I'm learning to live...
|
27.11.2009, 08:45 | #6 | |
Форумчанин
Регистрация: 24.05.2009
Сообщений: 119
|
Stilet
Спасибо за проведенный ликбез. Я анализировала ваш код, читала лекционные материалы, не все конечно еще поняла, но некоторые вещи уже уяснила. Цитата:
И по вашему совету попробовала сделать то же самое с TQueue. Но не компилится. Вот сообщение [DCC Error] Q2.dpr(36): E2003 Undeclared identifier: 'Add' [DCC Error] Q2.dpr(56): E2149 Class does not have a default property То есть есть 2 ошибки - Необьявленный индентификатор 'Add' и Класс не имеет свойств по умолчанию. Вот этот код Код:
|
|
30.11.2009, 11:19 | #7 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Там же четко по мятому сказано какие методы TQueue поддерживает, и метода ADD в нем нет. Это же очередь - там по анналогии методы Push (Аккумулирует в очередь) и Pop (Выбирает из очереди) отсюда: Код:
Код:
Код:
Код:
I'm learning to live...
|
|
30.11.2009, 12:07 | #8 |
Форумчанин
Регистрация: 24.05.2009
Сообщений: 119
|
Stilet
спасибо большое за внимание. Но я так не могу делать, когда не понимаю. А просто так брать даже готовый код, который не смогу обьяснить - я так не хочу. Я хочу знать и понять ООП. Поэтому решила делать с самого начала. Сделаю так - сначала напишу отдельно очередь с помощью классов. Я уже так и делаю. Структура будет такая - класс элементов и класс очередь. Так мне намного понятнее. За основу взяла примерный код с лекции по теме. В общем сначала реализую одну очередь, а потом сделаю класс-контейнер для многих очередей. |
30.11.2009, 12:12 | #9 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Массив указателей (паскаль) | diliana | Помощь студентам | 19 | 14.11.2009 11:53 |
Сортировка строк по алфавиту в структуре с помощью указателей | Anarki | Общие вопросы C/C++ | 2 | 23.10.2009 19:36 |
Массив указателей на структуры | SNAKE89 | Общие вопросы C/C++ | 4 | 27.12.2007 10:14 |