4 / 4 / 3
Регистрация: 15.12.2012
Сообщений: 192
|
|||||||||||
1 | |||||||||||
Проверить являются члены множества классов потомками другого множества классов06.02.2016, 16:19. Показов 3127. Ответов 17
Метки нет (Все метки)
Как проверить являются ли члены множества классов потомками другого множества классов
Например, есть четыре множества, являющиеся потомками первого из них:
Вот как я представлял:
0
|
06.02.2016, 16:19 | |
Ответы с готовыми решениями:
17
Обработка множества объектов разных классов Реализация шаблона множества set (для классов) на основе list или указателей Возможно ли создание собственного пространства имен для объединения множества классов и типов Как в множестве set проверить наличие элементов другого множества? |
139 / 137 / 66
Регистрация: 15.05.2012
Сообщений: 515
|
||||||
07.02.2016, 02:23 | 3 | |||||
Проверка классов потомков:
вперемешку, Delphi и С++ учите... ))
1
|
4 / 4 / 3
Регистрация: 15.12.2012
Сообщений: 192
|
|
07.02.2016, 08:52 [ТС] | 4 |
Не понял про вперемешку.
Мне нужно сравнить тип элементов одного массива с другим и потом выполнить с этим массивом классовые методы (элементы массива - объекты класса.
0
|
4 / 4 / 3
Регистрация: 15.12.2012
Сообщений: 192
|
|
07.02.2016, 10:46 [ТС] | 6 |
Не знаю ничего про колеса, но моя программа должна создавать графические объекты на экране. Есть класс объект, есть класс квадрат и куб. У них повторяются действия. Чтобы не тратить силы, я объявил массивы этих классов в виде переменных. Нужно их сначала создать, потом настроить, нарисовать и удалить из памяти. Эти действия повторяются, но разнятся содержание. Для меньшего количества записей я хотел сделать одну процедуру на каждое действие, где входным параметром мог становится любой из объявленных массивов, только меняются данные и виды операции, в зависимости от класса элементов массива.
0
|
07.02.2016, 21:38 | 7 | |||||
ну вот что-то подобное я и предполагал
но при чем тут классы? создаются экземпляры объектов описанных классов и все встает на свои места есть объекты, есть списки этих объектов есть некий суперобъект, который по списку рисует графические элемены в зависимости от их класса есть много всяких рассуждений в том числе на этом форуме но из своего большого практического опыта я выделил этот вариант как самый верный с точки зрения ООП и разделения функциональности по модулям: объекты хранят данные и ничего не знают о своей отрисовке суперобъект знает все о масштабе и поле рисования, имеет доступ к канвасу и т.д. и тогда есть большой цикл с ветвлением, где перечислены все виды используемых примитивов
и никаких Array of TClass
0
|
4 / 4 / 3
Регистрация: 15.12.2012
Сообщений: 192
|
|
07.02.2016, 23:59 [ТС] | 8 |
Создание объектов класса я тоже хочу передать процедуре. Мне нужен массив объектов класса, чтобы создавать подобные объекты в большом количестве, поэтому массив с таким типом.
0
|
08.02.2016, 06:06 | 9 | |||||
в 21 веке "массив" объектов выглядит так
0
|
4 / 4 / 3
Регистрация: 15.12.2012
Сообщений: 192
|
||||||
08.02.2016, 10:10 [ТС] | 10 | |||||
Это список классов, а не массив объектов. Мне нужно именно массив объектов. Он объявляется вот так:
0
|
08.02.2016, 10:36 | 11 | |||||
1.Забудьте же, наконец, про массивы. Считайте что списки - это динамические массивы с расширенной функциональностью...
2.Что даст вам создание по очереди прямоугольника вообще, квадрата вообще, круга вообще? не какого-то конкретного, а абсолютно пустого, который вы так ловко можете создать, правда не так как у вас тут написано, а, например mass[i]:=ClassArray[i].Create; если вы будете создавать конкретный объект, никуда не деться от заполнения его конкретных полей
1
|
4 / 4 / 3
Регистрация: 15.12.2012
Сообщений: 192
|
|
08.02.2016, 14:29 [ТС] | 12 |
Я не совсем понял, но уже начинаю понимать... хорошо, тогда поучу списки вместо массивов.
Добавлено через 1 час 46 минут Что такое TObjectList?
0
|
4 / 4 / 3
Регистрация: 15.12.2012
Сообщений: 192
|
||||||||||||||||
08.02.2016, 16:00 [ТС] | 14 | |||||||||||||||
Я почти разобрался со списками.
Пояснение по след. кодам: TCube и TQuad - потомки TObj QuadCount и CubeCount - константы
Есть ли возможность выбрать из списка объекты только с классом TQuad?
0
|
08.02.2016, 21:40 | 15 | ||||||||||
Сообщение было отмечено homelleon как решение
Решение
отлично...
вполне достаточно будет
в качестве примера у меня в аналогичной задаче есть примерно такой код
1
|
4 / 4 / 3
Регистрация: 15.12.2012
Сообщений: 192
|
|
08.02.2016, 21:46 [ТС] | 16 |
Просто у меня программа ругалась, что
quad[i] и TCube - не совместимы, т.к. quad[i] - TObj (тот класс, который я указывал в списке на SetItems и другой похожий, т.к. TObj - это родительский класс для TCube), хотя в [i] записан TCube.
0
|
08.02.2016, 21:57 | 17 |
Сообщение было отмечено homelleon как решение
Решение
конечно
используйте конструкцию as var obj:TClass1; (obj as TClass2) приведение типа с автоматической проверкой наследования если TClass2 наследник TClass1 - то все будет ОК
1
|
4 / 4 / 3
Регистрация: 15.12.2012
Сообщений: 192
|
|
08.02.2016, 21:59 [ТС] | 18 |
Ясно! Спасибо.
Я на время отказался, правда, от общего списка, сделал списки для каждого объекта - но тоже удобно.
0
|
08.02.2016, 21:59 | |
08.02.2016, 21:59 | |
Помогаю со студенческими работами здесь
18
Вывести слова этого же текста, множества символов которых являются подмножествами множества символов Определить количество классов эквивалентных столбцов данной прямоугольной матрицы. Столбцы считать эквивалентными, если равны множества их элементов. Static члены классов Указатель на объекты и члены классов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |