![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
FakeMoNEy |
![]()
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 7 Регистрация: 27.11.2012 Пользователь №: 3612 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Написал небольшой парсер для BSDL файлов, но получилось как-то функционально что ли, я не смог выделить абстракции, к тому же приходится создавать объект парсера, затем вызвать функцию и передавать ему имя файла и объект для того что он разобрал(jtagDevice), мне кажется можно проще или более гибко но не могу придумать как, плюс зачемто унаследовал его от QObject что было лишним это я уберу, с помощью него разбираю отдельно файлы или папки вызывая для каждого файла parse(), еще вопрос как обрабатывать ситуации когда он не нашел чегото, можно ли использовать исключения или они не подходят и это будет избыточным, пока что просто вывожу в консоль если чтото не так, еще не встречал файла с ошибкой.
Вот класс: Раскрывающийся текст
И еще вопрос Допустим есть два класса
Мне нужно хранить много экземпляров этих класов, я создал класс хранилище который хранит указатели на базовый класс в векторе, дает доступ к желементам и еще какойто функционал. Я передаю в вектор указатели на объект так push(new Obj1()) push(new Obj2()). Соответственно обратно тоже указатель на базовый класс. Удаляю обьекты в деструкторе хранилища
Если комуто не лень скажите пожалуйста 1)Это хорошее решение хранить указатели а не объекты, и удалять их в деструкторе вышеописанным образом 2)Можно ли так использовать наследование как в Obj1 Obj2 или стоит определить виртуальный класс и два наследника(или вобще хранить все в одном и определять тип как пустая строка Str_Child или нет, что в принципе я и собираюсь делать с классами Obj1 Obj2 тк нужно определять тип) 3) Как выбрать хранить указатель на данные (str_Base,str_child) или переменные. Спасибо всем ответившим и прочитавшим до конца. |
|
|
![]() |
Litkevich Yuriy |
![]()
Сообщение
#2
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
Правило создания тем:
одна проблема - одна тема У тебя намешано две две совершенно не связанные проблемы в одной теме. Создавай для второй проблемы отдельную тему. |
|
|
Алексей1153 |
![]()
Сообщение
#3
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2943 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: ![]() ![]() ![]() |
от QObject наследовать в данном случае не нужно, как мне показалось ))
у Obj1 у тебя странный конструктор - Obj2 1 - хранить указатели в массиве - нормально, главное не забыть подчищать в деструкторе, ну и при удалении отдельного объекта во время работы 2 - не совсем понятен вопрос. Но каскадное наследование возможно, в том числе и виртуальное 3 - зависит от конкретного случая |
|
|
Iron Bug |
![]()
Сообщение
#4
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 15.6.2025, 15:54 |