![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 28.09.2011
Сообщений: 250
|
![]()
Ситуация в следующем.
Я хотел посмотреть, действительно ли работа с классами упрощает жизнь, или нет. Представил себе что нужно создать класс, который хранит в себе целый тест. С несколькими вопросами, и вариантами к нету. В общем, я сделал следующее. 1) Объявил классы: Код:
Код:
3) Пытаюсь заполнить .... Код:
Но у меня вопросы. Правильно ли я всё объявил? (Если нет, то подскажите как правильно ..) Далее, очень мне интересно, как же добавлять следующие вопросы в мой тест? таким же образом? (я имею в виду, можно через цикл) и самый пожалуй важный вопрос, как читать данные из моего класса (хотя я вот пока писал, у меня появилось подозрение, что мне надо написать функцию, которая будет к примеру по номеру вопроса, находить его, а по второму номеру находить вариант ответа к найденному вопросу. К примеру вот так вот: Fuction(NumQuestion, NumVariant: integer): string) ============================ Подскажите, пожалуйста ... |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
![]()
А заполнение точно работает?
![]() Лучше использовать что-то типа TObjectList (generic если Дельфи 2009+). И не делать AddTest в классе Test и т.п., лучше как-то так: Код:
По-разному, зависит от задачи. Вероятно стоит обратить внимание на property. Ну и по-возможности обычно имеет смысл делать так, чтобы все что можно было "readonly" (неизменяемые значения после создания экземпляра, например property только с read, значения задавать в конструкторе), и все что можно было private.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. Последний раз редактировалось Alex11223; 17.01.2017 в 20:58. |
![]() |
![]() |
![]() |
#3 | |
Форумчанин
Регистрация: 28.09.2011
Сообщений: 250
|
![]()
Ну, я недавно, достаточно часто работал с динамическими массивами, и там всё работало. думал сделать по такому же принципу.
Цитата:
Да, это более логичнее выглядит чем у меня. Спасибо за подсказку. =================================== ============== Я вот пока действительно, не могу придумать, как вывести данные из класса .... Сделал вот такую штуку: Вот так я заполняю тест Код:
Код:
Код:
Ну и соответственно, МЕМО мне выдало сообщение: (Какие-то проблемы ... ----> 0) =============================== |
|
![]() |
![]() |
![]() |
#4 | |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
![]()
Что вы сделать пытаетесь? Что за цикл?
"Вопрос №" и т.п. лучше не записывать сразу в строку, только при выводе. Добавить для номера поле если надо (но может проще обойтись порядком в массивах? И вопросы/ответы ж бывает перемешивают, чтоб были всегда разные/разный порядок) Цитата:
Вообще если выбирать из вещей, которые упрощают жизнь и дают возможность спать ночью, то одна из самых важных — это автоматические тесты (юнит тесты и т.д.). И система контроля версий (git).
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. Последний раз редактировалось Alex11223; 17.01.2017 в 21:52. |
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 28.09.2011
Сообщений: 250
|
![]()
да всё просто.
я циклом заполняю массив в классе, и потом хочу просто получить данные, из массива |
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
![]()
Я про второй цикл, в функции со странным названием Why.
Если вы там пытаетесь получить ответ с указанным номером, то говорю ж, проще было бы использовать порядок в массиве (или что-то типа Dictionary/Map, но стандартный TDictionary завезли тоже только с 2009). Но вы там что-то странное делаете потому что вы создали новые (пустые) экземпляры вопроса и ответа.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 14.02.2013
Сообщений: 222
|
![]()
Меня смущает момент, что Вы в каждом обработчике (Button2Click и т.д.) объявляете экземпляр класса, вызываете конструктор, что то с ним делаете и забываете о классе. Т.е. как минимум засоряете память, ну или все время работаете с разными экземплярами. Как по мне, то всякие
Код:
|
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Функции в классах C++ | Ligeros905 | Помощь студентам | 0 | 12.05.2014 12:51 |
Перемнные в классах | Mariolka | PHP | 10 | 14.11.2013 01:00 |
var в классах | RuVarez | Общие вопросы Delphi | 1 | 20.04.2012 17:12 |
Вопрос о классах (С++) | Александр Елис | Помощь студентам | 5 | 25.01.2010 20:49 |
Сборка или чистая XP ? Подскажите я запутался. | spamer | Windows | 8 | 16.10.2009 23:50 |