To More Specific Class

Общие принципы, проектирование, модуляризация, темплейты и шаблоны
Ответить
Аватара пользователя
FireFly

Activity Black
expert
expert
Сообщения: 1321
Зарегистрирован: 25 апр 2009, 08:58
Награды: 2
Версия LabVIEW: 2014
Откуда: Санкт-Петербург
Поблагодарили: 1 раз

To More Specific Class

Сообщение FireFly »

Нужно решить хитрую задачу с классами. Не могу сам разобраться.

Ситуация:
Есть Parent класс, с кучей параметров.
От Parent класса наследуются Child. Столько разных Child, сколько нужно програмисту для решения его задачи. Такие, какие нужны програмисту. Parent класс находится в универсальной библиотеке и ничего не знает о Child, которые от него могут отнаследовать.

Некоторая VI в универсальной библиотеке создает объект класса Parent. Заполняет кучу параметров. На выходе VI получается объект класса Parent, с заполненными параметрами.

Далее необходимо найти способ превратить объект класса Parent в объект класса Child. To More Specific Class при этом выдаст ошибку 1448, потому что данный объект чистый Parent класс, и не может стать Child классом:
s0.png
s0.png (5.49 КБ) 5244 просмотра
Если бы объект был бы изначально Child класса, превращен в Parent, установлены параметры, то потом объект превратился бы в Child без проблем:
s1.png
s1.png (7.22 КБ) 5244 просмотра
Но я не могу так сделать, потому что библиотека универсальная и ничего не знает о классах, которые програмист захочет отнаследовать от Parent. Есть также масса других причин препятствующих этому, но не вижу смысла вдаваться в подробности.

Если говорить языком XML, то разница между "чистым" объектом Parent и объектом Child превращенным в Parent следующая:
s2.png
Вложения
Test.zip
(23.48 КБ) 263 скачивания
Иногда лучше молчать и слыть идиотом, чем заговорить и развеять все сомнения.
Aleksandr

Gold
user
user
Сообщения: 97
Зарегистрирован: 21 июн 2011, 15:05
Награды: 1
Версия LabVIEW: 2009-2017
Откуда: Novosibirsk
Контактная информация:

Re: To More Specific Class

Сообщение Aleksandr »

Попробуй так.
Вложения
Test_.zip
Версия LabVIEW 2012
(50.9 КБ) 263 скачивания
Uniscan Research
Аватара пользователя
FireFly

Activity Black
expert
expert
Сообщения: 1321
Зарегистрирован: 25 апр 2009, 08:58
Награды: 2
Версия LabVIEW: 2014
Откуда: Санкт-Петербург
Поблагодарили: 1 раз

Re: To More Specific Class

Сообщение FireFly »

Параметров очень много, вручную все копировать не очень хочется.
Иногда лучше молчать и слыть идиотом, чем заговорить и развеять все сомнения.
Aleksandr

Gold
user
user
Сообщения: 97
Зарегистрирован: 21 июн 2011, 15:05
Награды: 1
Версия LabVIEW: 2009-2017
Откуда: Novosibirsk
Контактная информация:

Re: To More Specific Class

Сообщение Aleksandr »

А есть возможность немного изменить порядок действий? Например, сначала выбрать объект класса Child, а затем уже задать параметры.
Uniscan Research
Аватара пользователя
FireFly

Activity Black
expert
expert
Сообщения: 1321
Зарегистрирован: 25 апр 2009, 08:58
Награды: 2
Версия LabVIEW: 2014
Откуда: Санкт-Петербург
Поблагодарили: 1 раз

Re: To More Specific Class

Сообщение FireFly »

Aleksandr писал(а):А есть возможность немного изменить порядок действий? Например, сначала выбрать объект класса Child, а затем уже задать параметры.
Нет. В стартовом посте я писал что именно такой способ является рабочим, но у меня нет возможности его использовать.
Иногда лучше молчать и слыть идиотом, чем заговорить и развеять все сомнения.
Ответить

Вернуться в «Модели программирования»