|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
24.03.2016, 20:53 | #1 |
Пользователь
Регистрация: 26.02.2015
Сообщений: 24
|
Структура в классе C++
Здравствуйте! Только начал разбираться в структурах и классах, прошу подсказать.
Есть задача: "..Карточка иностранного слова представляет собой структуру, содержащую иностранное слово и его перевод. Для моделирования электронного словаря иностранных слов реализовать класс Dictionary. Данный класс имеет поле-название словаря и содержит массив структур WordCard, представляющих собой карточки иностранного слова... " Вопрос: правильно ли реализовал класс и как работать с полями структуры? Код:
|
24.03.2016, 21:26 | #2 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Если вы хотите извне обращаться, то переместите описание структуры в public или вообще просто перед классом поместите.
"Извне" значит так: Код:
Но скорее всего вам надо сделать массив private и сделать public функции для работы с ним. Код:
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. Последний раз редактировалось Alex11223; 24.03.2016 в 21:28. |
28.03.2016, 21:46 | #3 | |
Пользователь
Регистрация: 26.02.2015
Сообщений: 24
|
Цитата:
Последний раз редактировалось NEymexa:c; 28.03.2016 в 21:49. |
|
28.03.2016, 22:02 | #4 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Если просто фиксированный массив как тут, то никак, у вас всегда будет массив с 200 экземплярами структуры.
Например сделайте переменную (count) для хранения кол-ва "добавленных"/используемых элементов (0-200). При добавлении записывайте данные в элемент с номером count и увеличивайте ее. При удалении сдвигайте элементы влево начиная с удаляемого и уменьшайте count. А так есть std::vector если не обязательно такой массив.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
30.03.2016, 21:28 | #5 | |
Пользователь
Регистрация: 26.02.2015
Сообщений: 24
|
Цитата:
То есть создать динамический массив объектов класса ? Код:
Последний раз редактировалось NEymexa:c; 30.03.2016 в 21:37. |
|
30.03.2016, 21:48 | #6 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Зависит от того как это делать.
В этой строчке создается один словарь, а не массив. Вообще лучше избегать использования new (выделение памяти в куче/heap) без необходимости, ибо эту память надо освобождать с помощью delete (или smart pointer и т.п.), а вместо этого создавать объекты просто в стеке. Например так: Код:
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
30.03.2016, 22:28 | #7 | |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
Цитата:
Код:
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder |
|
30.03.2016, 22:59 | #8 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
От задачи зависит что лучше. Зачем связный список если например нужно обращаться по индексу? (типа взять второй и пятнадцатый словарь)
И автор сейчас вообще не про WordCard спрашивал. Про который в задании просили "массив структур".
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
31.03.2016, 01:57 | #9 | |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
Цитата:
Для понимания сути вещей, ему нужно сначала научится работать со связными списками. Если нужно несколько справочников, создаём две структуры. Одна, содержит всего два указателя и имя справочника. Один на саму себя. Другой, на справочник (Library, Dictionary и Name). Тогда, для создания группы справочников, сначала добавляем к Library один элемент и присваиваем ему имя. Затем создаём элемент списка слов, ссылку на него и записываем в Dictionary. К тому, же такую структуру, легко сохранять в XML файле т.к. она имеет иерархическую структуру.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder Последний раз редактировалось Smitt&Wesson; 31.03.2016 в 02:03. |
|
31.03.2016, 10:02 | #10 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Дык с чего вы взяли, что тут именно связный список нужен, а не массив?
Можно ж и свой массив с изменяемым размером (ну как std::vector: size, capacity и т.п.) навелосипедить, тоже не менее полезно.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Класс в классе | RAFA91 | Общие вопросы C/C++ | 4 | 25.05.2015 12:24 |
Структура DateTime, битовая структура | prepare2die | Помощь студентам | 1 | 10.03.2015 13:32 |
Структура в классе | ArmanPrestige | Общие вопросы C/C++ | 4 | 24.06.2012 20:24 |
Класс в классе | Alex11223 | Общие вопросы C/C++ | 2 | 13.04.2011 23:10 |
Ошибка в классе | Superlotles | Общие вопросы C/C++ | 2 | 09.07.2010 00:05 |